问题请教 不知道程序什么地方错了 拜求大神
#include<stdio.h>#include<stdlib.h>
#include<malloc.h>
typedef struct LONDE
{
int data;
struct LONDE *next;
}LinkList;
void initlist(LinkList *L)
{
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
}
void createlist(LinkList *L,int a[],int n)
{
LinkList *s,*r;int i;
L=(LinkList *)malloc(sizeof(LinkList));
r=L;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void mergelist_l(LinkList *la,LinkList *lb,LinkList *lc)
{
struct LONDE pa,pb,pc;
pa=la->next;
pb=lb->next;
lc=la;
pa=la;
while(pa && pa)
{
if(pa->data<=pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(lb);
}
void main()
{
int a[4]={1,3,4,5,6},b[3]={1,3,2,5};
LinkList *sp1;
LinkList *sp2;
LinkList *sp3;
initlist(sp1);
initlist(sp2);
initlist(sp3);
creatlist(sp1, a[0], 5);
creatlist(sp2, b[0], 4);
mergelist_l(&sp1,&sp2,&sp3);
}