void showList(LNode *L)函数为什么无法输出Lc啊?
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode;
LNode *Create_LinkList()
{ int data;
LNode *head,*p,*q;
head=p=(LNode*)malloc(sizeof(LNode));
p->next=NULL;
printf("请输入结点的个数:");
int j;
scanf("%d",&j);
printf("请输入结点:\n");
for(int i=1;i<=j;i++)
{scanf("%d",&data);
q=(LNode*)malloc(sizeof(LNode));
q->data=data;
q->next=p->next;p->next=q;p=q;
if(i==j) break;
}
return (head);
}
LNode *Merge_Linklist(LNode *La,LNode *Lb)
{LNode *Lc,*pa,*pb,*pc,*ptr;
Lc=La;pc=La;pa=La->next;pb=Lb->next;
while(pa!=NULL&&pb!=NULL)
{if(pa->data<pb->data)
{pc->next=pa;pc=pa;pa=pa->next;}
if(pa->data>pb->data)
{pc->next=pb;pc=pb;pb=pb->next;}
if(pa->data==pb->data)
{pc->next=pa;pc=pa;pa=pa->next;
ptr=pb;pb=pb->next;free(ptr);}
}
if(pa!=NULL) pc->next=pa;
else pc->next=pb;
free(Lb);
return(Lc);
}
void showList(LNode *L)
{ LNode *p;
p=L->next;
printf("要输出的结点为:\n");
while(p!=NULL)
{printf("%d ",p->data);
p=p->next;}
printf("\n");
}
int main()
{ LNode *Lc,*La,*Lb;
printf("La\n");
La=Create_LinkList();
showList(La);
printf("Lb\n");
Lb=Create_LinkList();
showList(Lb);
printf("Lc\n");
Lc=Merge_Linklist(La,Lb);
showList(Lc);
return 0;
}