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 }
28 LinkList MergeLinkList(LinkList A,LinkList B)
29 {
30     LinkList C=A;
31     Node*a=A->next,*b=B->next,*c=A;
32     while(a&&b)
33     {
34         while(b&&b->data<a->data)b=b->next;
35         if(b&&b->data==a->data)
36         {
37             c->next=b;
38             c=c->next;
39             b=b->next;
40         }
41         a=a->next;
42     }
43     c->next=NULL;
44     
45     
46     return C;
47 }
48 OrderLinkList(LinkList L)
49 {
50     Node*t=L->next;
51     while(t)
52     {
53         printf("%d ",t->data);
54         t=t->next;
55     }
56 }
57 int main()
58 {
59     LinkList A,B,C; 
60     InitLinkList(&A),InitLinkList(&B),InitLinkList(&C);
61     CreateLinkList(A),CreateLinkList(B);
62     C=MergeLinkList(A,B);
63     OrderLinkList(C);
64     return 0;
65     
66 }