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 }