写了很久···该忘的全忘了看来
最后发现有的判断条件写的不对,另外,可以给curr指针设终点。
详细的可以看注释
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* a=l1;
ListNode* b=l2;
ListNode* curr;
if(a==NULL) return l2;
if(b==NULL) return l1;
if(a->val<b->val) {curr=a;a=a->next;}
else {curr=b;b=b->next;}
ListNode* mynode=curr;
while(a!=NULL&&b!=NULL){ //这个判断条件也很关键
if(a->val<b->val){
curr->next=a;
a=a->next;
}
else{
curr->next=b;
b=b->next;
}
// curr->next->next = NULL; //关键的一句,设终点
curr=curr->next;
}
if(b!=NULL){ //这里直接用if就可以了,连接一下
curr->next=b;
}
if(a!=NULL){
curr->next=a;
}
return mynode;
}
};