我的代码有什么问题?方法SortedMerge采用两个链表,我使用了节点指针z,它指向我们正在处理的节点,指针头被初始化为点z,因为在结束时z将指向最后一个节点....我将返回最终排序合并列表的头部。
struct node* SortedMerge(struct node* a, struct node* b)
{
struct node* z=NULL;
struct node *head=z;
while(a!=NULL || b!=NULL)
{
if(a==NULL)
{
return(b);
break;
}
else if(b==NULL)
{
return(a);
break;
}
if(a->data<b->data)
{
struct node* newnode=(struct node*)malloc(sizeof(struct node));
newnode->data=a->data;
newnode->next=NULL;
z=newnode;
SortedMerge(a->next,b);
}
else if(a->data>b->data)
{
struct node* newnode=(struct node*)malloc(sizeof(struct node));
newnode->data=b->data;
newnode->next=NULL;
z=newnode;
SortedMerge(a,b->next);
}}
return (head) ;
}