【发布时间】:2016-10-20 19:59:15
【问题描述】:
在这里,我试图合并两个排序的链表,但我的代码根本不起作用,所以谁能告诉我我做错了什么? 这是合并两个排序链表的函数
Node* MergeLists(Node *headA, Node* headB)
{
Node *temp,*ptr,*par;
ptr=headA;
par=headB;
int c=0,s=0,t;
while(ptr!=NULL)
{
ptr=ptr->next;
c++;
}
while(par!=NULL)
{
par=par->next;
s++;
}
t=c+s;
//cout<<t<<"\n";
temp=(Node*)malloc(t*sizeof(Node));
if(headA->data <= headB->data)
{
temp=headA;
ptr=headA->next;
par=headB;
}
else
{
temp=headB;
par=headB->next;
ptr=headA;
}
while(ptr!=NULL && par!=NULL)
{
if(ptr->data>=par->data)
{
temp->next=par;
par=par->next;
}
else
{
temp->next=ptr;
ptr=ptr->next;
}
temp=temp->next;
}
while(ptr!=NULL)
{
temp->next=ptr;
ptr=ptr->next;
temp=temp->next;
}
while(par!=NULL)
{
temp->next=par;
par=par->next;
temp=temp->next;
}
temp->next=NULL;
while(temp!=NULL)
{
cout<<temp->data<<" ";
temp=temp->next;
}
return temp;
}
【问题讨论】:
-
用适当的语言标签标记您的问题。
-
“标准”方法使用指针到指针,大约需要十行代码。
-
“我的代码根本不工作” 不是恰当的问题描述。代码的哪一部分不起作用?你有错误吗?它会返回错误的结果吗?您尝试使用哪些输入,正确的结果是什么样的?
-
@SumitKapoor 您只是合并两个已排序的列表,还是要合并两个列表并对整个列表进行排序?
-
@CherubimAnand 我正在尝试合并两个排序列表
标签: c linked-list singly-linked-list