算法之链表删除指定节点

2022/3/7 1:15:44

本文主要是介绍算法之链表删除指定节点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 分析和思路:先插入节点,然后再打印剩余节点值即可

 1 //解题思路:
 2 //创建链表后,通过不重复的节点,遍历链表,找到待插入的值后,将链表插进去即可。
 3 #include "iostream"
 4 using namespace std;
 5 struct ListNode
 6 {
 7     int value;
 8     ListNode* pnext;
 9 }listnode;
10 
11 
12 
13 void InsertList(ListNode* &phead,int insert_value,int node_value)//指针引用可以这样用吗?
14 {
15     ListNode* temp=phead;
16     while(temp!=NULL)
17     {
18         if(temp->value!=node_value)
19         {
20             temp=temp->pnext;
21             continue;
22         }
23 
24         ListNode* node=temp;
25         ListNode* node_next=node->pnext;
26 
27         ListNode *pinsert;
28         pinsert=(ListNode*)malloc(sizeof(ListNode));
29         pinsert->value=insert_value;
30 
31         node->pnext=pinsert;
32         pinsert->pnext=node_next;
33         return;
34         //  phead->pnext=NULL;
35 
36 
37     }
38 }
39 int main()
40 {
41     ListNode *phead;
42     int number=0;
43     while(cin>>number)
44     {
45 
46 
47         int head_value=0;
48         cin>>head_value;
49         phead=(ListNode*)malloc(sizeof(ListNode));
50         phead->value=head_value;
51         phead->pnext=NULL;
52         for(int i=0;i<number-1;i++)
53         {
54             int insert_value=0;
55             int node_value=0;
56             cin>>insert_value;
57             cin>>node_value;
58 
59             InsertList(phead,insert_value,node_value);
60 
61         }
62         int a=10;
63         cin>>a;
64         ListNode* temp=phead;
65         while(temp!=NULL)
66         {
67 
68             if(temp->value==a)
69             {
70                 temp=temp->pnext;
71                 continue;
72             }
73             else
74             {
75                 cout<<temp->value<<" ";
76                 temp=temp->pnext;
77             }
78         }
79         cout<<endl;
80     }
81     return 0;
82 }

 



这篇关于算法之链表删除指定节点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程