1 #include<stdio.h>
2 #include<stdlib.h>
3 typedef struct LinkNode
4 {
5 int data;
6 struct LinkNode *next;
7 }LinkList,LinkNode;
8 void pushback(LinkList **head,int value)
9 {
10 LinkList *cur=*head;
11 LinkNode *newnode=(LinkNode*)malloc(sizeof(LinkNode));
12 newnode->data =value;
13 newnode->next = NULL;
14 if(head==NULL)
15 return ;
16 if(*head==NULL)
17 *head=newnode;
18 else
19 {
20 while(cur->next!=NULL)
21 cur=cur->next;
22 cur->next= newnode;
23 }
24 }
25 void reverse(LinkList **head)
26 {
27 // LinkNode *key=(LinkNode*)malloc(sizeof(LinkNode));
28 // key->data =0;
29 // key->next = NULL;
30 LinkNode *cur = *head;
31 LinkNode *tmp,*key=NULL,*p;
32 //key=NULL;
33 if(*head==NULL)
34 return ;
35 // if(*head==NULL)
36 // return;
37 while(cur!=NULL)
38 {
39 tmp=cur->next;
40 cur->next=key;
41 key=cur;
42 cur=tmp;
43 }
44 // (*head)->next=NULL;
45 *head = key;
46 }
56 LinkList* reverse2(LinkList *head)
57 {
58 LinkNode *cur = head;
59 LinkNode *tmp,*key=NULL;
60 if(head==NULL)
61 return ;
62 //if(*head==NULL)
63 // return;
64 while(cur!=NULL)
65 { tmp=cur->next;
66 cur->next=key;
67 key=cur;
68 cur=tmp;
69 // tmp=cur;
70 // cur=cur->next;
71 // tmp->next=key;
72 // key=tmp;
73 }
74
75 return key;
76 }
47 void print(LinkList *head)
48 {
49 LinkNode *cur = head;
50 while(cur!=NULL)
51 {
52 printf("%d ",cur->data);
53 cur=cur->next;
54 }
55 }
17 int main()
118 {
119 LinkList *L=NULL,*l=NULL;
120 pushback(&L,1);
121 pushback(&L,3);
122 pushback(&L,5);
123 // pushback(&l,2);
124 // pushback(&l,4);
125 // pushback(&l,6);
126 reverse(&L);
128 print(L);
129 return 0;
130 }
链表逆置
最新推荐文章于 2023-09-17 10:12:18 发布