我无法理解为什么我的代码不能合并两个排序的链表
C代码:
SinglyLinkedListNode* mergeLists(SinglyLinkedListNode* head1, SinglyLinkedListNode* head2) {
SinglyLinkedListNode *temp,*ptr1,*ptr2;
//Merging
temp=head1;
while(temp!=NULL)
temp=temp->next;
temp->next=head2;
temp=head1;
//Sorting
int tem;
ptr1=head1;
while(ptr1->next != NULL){
ptr2 = ptr1->next;
while(ptr2 != NULL){
if((ptr1->data)>(ptr2->data)){
tem = ptr1->data;
ptr1->data = ptr2->data;
ptr2->data = tem;
}
ptr2=ptr2->next;
}
ptr1=ptr1->next;
}
return head1;
}
while(temp!=NULL)
temp=temp->next;
temp->next=head2;
temp=head1;
与非常不同吗
while(temp!=NULL) {
temp=temp->next;
temp->next=head2;
temp=head1;
}
支架物,压痕物不(对人类读者除外(。
但仍然存在逻辑错误。你可能打算走到第一个列表的末尾,然后把第二个列表附加在上面,但你走得太远了。也许您想要while(temp->next != NULL)
(在进入这样的循环之前,您需要添加一个检查temp是否为null(。