合并两个单链表的问题
#include<stdio.h>#include<malloc.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
int CreateLinkList(LinkList &L,int n)
{
LinkList p,q;
int a,i;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
p=(LinkList)malloc(sizeof(LNode));
p=L;
for(i=0;i<n;i++)
{
q=(LinkList)malloc(sizeof(LNode));
scanf("%d",&a);
q->data=a;
q->next=p->next;
p->next=q;
p=q;
}
return 1;
}
int Load_Sq(LinkList &L)
{
LinkList p=L;
while(p->next!=NULL)
{
p=p->next;
printf("%d ",p->data);
}
return 1;
}
int MergeLinkList(LinkList &Lc,LinkList &La,LinkList &Lb)
{
LinkList pa=La->next,pb=Lb->next,pc;
Lc=pc=La;
while(pa&&pb)
{
if(pa->data<=pb->data)
{pc->next=pa;pc=pa;pa=pa->next;}
else
{pc->next=pb;pc=pb;pb=pb->next;}
}
if(pa)
pc->next=pa;
if(pb)
pc->next=pb;
return 1;
}
int main()
{
LinkList La,Lb,Lc;
int i,a,b;
scanf("%d",&a);
CreateLinkList(La,a);
printf("The list a is:\n");
Load_Sq(La);
printf("\n");
scanf("%d",&b);
CreateLinkList(Lb,b);
printf("the list b is\n");
Load_Sq(Lb);
printf("\n");
MergeLinkList(Lc,La,Lb);
Load_Sq(La);
printf("\n");
Load_Sq(Lb);
printf("\n");
Load_Sq(Lc);
return 1;
}
合并以后La和Lb的输出怎么变了?