链表合并问题
#include "stdio.h"#include "malloc.h"
typedef struct node
{
int data;
struct node *next;
}NODE;
NODE *create();
void lianbiaohebing(NODE *pa,NODE *pb);
void print(NODE *head);
main()
{
NODE *la,*lb;
printf("请输入第一个链表的元素:\n");
la=create();
printf("请输入第一个链表的元素:\n");
lb=create();
lianbiaohebing(la,lb);
print(la);
}
NODE *create()
{
NODE *p,*q,*head;
int a,n;
printf("请你输入链表的长度:");
scanf("%d",&n);
head=(NODE *)malloc(sizeof(NODE));
q=head;
printf("请你输入链表的个元素:");
while(n>0)
{
scanf("%d",&a);
p=(NODE *)malloc(sizeof(NODE));
p->data=a;
q->next=p;
q=p;
n--;
}
p->next=NULL;
return (head);
}
void lianbiaohebing(NODE *la,NODE *lb)
{
NODE *pa,*pb,*q;
pa=la->next;
pb=lb->next;
while(pa&&pb)
{
if(pa->data<=pb->next)
{
q->next=pa;
q=pa;
pa=pa->next;
}
else
{
q->next=pb;
q=pb;
pb=pb->next;
}
}
q->next=(pa?pa:pb);
free(lb);
}
void print(NODE *head)
{
NODE *a;
a=head->next;
printf("输出链表为:");
while(a!=NULL)
{
printf("%d",a->data);
a=a->next;
}
}
帮我看一下哪里错了,谢谢各位了