
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,*p,*q; 32 while(a&&b) 33 { 34 p=a,q=b; 35 a=a->next; 36 b=b->next; 37 q->next=p->next; 38 p->next=q; 39 40 } 41 if(b)q->next=b; 42 43 return C; 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 A,B,C; 57 InitLinkList(&A),InitLinkList(&B); 58 CreateLinkList(A),CreateLinkList(B); 59 InitLinkList(&C); 60 C=MergeLinkList(A,B); 61 OrderLinkList(C); 62 return 0; 63 64 }