单链表的逆置

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 typedef struct Node
 5 {
 6     char a;
 7     struct Node *next;
 8 }Node,*list;
 9 
10 void q(list L);
11 void p(list L);
12 int main()
13 {
14     list L;
15     L=(list)malloc(sizeof(Node));
16     L->next=NULL;
17     p(L);
18     q(L);
19     while(L->next!=NULL)
20     {
21         L=L->next;
22         printf("%c",L->a);
23     }
24     printf("\n");
25     return 0;
26 }
27 
28 void p(list L)
29 {
30      list s,r;
31      char c;
32      r=L;
33      c=getchar();
34      while(c!='\n')
35      {
36          s=(list)malloc(sizeof(Node));
37          s->a=c;
38          r->next=s;
39          r=s;
40          c=getchar();
41      }
42      r->next=NULL;
43 }
44 
45 void q(list L)
46 {
47     list s,r;
48     r=L->next;
49     L->next=NULL;
50     while(r!=NULL)
51     {
52         s=r;
53         r=r->next;
54         s->next=L->next;
55         L->next=s;
56     }
57 }

 

posted @ 2017-10-28 16:43  zcb_bai  阅读(175)  评论(0编辑  收藏  举报