
1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef struct Node{ 4 int data; 5 Node*next; 6 }Node,*LinkList; 7 InitLinkList(LinkList*L) 8 { 9 *L=(LinkList)malloc(sizeof(Node)); 10 (*L)->next=NULL; 11 } 12 CreateLinkList(LinkList L) 13 { 14 int length,e; 15 Node*t,*q=L; 16 scanf("%d",&length); 17 for(int i=1;i<=length;i++) 18 { 19 scanf("%d",&e); 20 t=(LinkList)malloc(sizeof(Node)); 21 t->data=e; 22 t->next=q->next; 23 q->next=t; 24 q=t; 25 } 26 } 27 ReverseLinkList(LinkList L) 28 { 29 Node*p,*q,*r; 30 p=L->next,q=p->next,r=q->next; 31 p->next=NULL; 32 while(r) 33 { 34 q->next=p; 35 p=q; 36 q=r; 37 r=r->next; 38 } 39 L->next=q; 40 q->next=p; 41 42 43 44 } 45 OrderLinkList(LinkList L) 46 { 47 Node*t=L->next; 48 while(t) 49 { 50 printf("%d ",t->data); 51 t=t->next; 52 } 53 } 54 int main() 55 { 56 LinkList L; 57 InitLinkList(&L); 58 CreateLinkList(L); 59 ReverseLinkList(L); 60 OrderLinkList(L); 61 return 0; 62 63 }