@geek-sjl
2018-10-14T15:08:10.000000Z
字数 795
阅读 445
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* res_p=NULL;
ListNode* res_start=NULL;
if(l1==NULL) return l2;
if(l2==NULL) return l1;
if((l1->val)<(l2->val)) {res_p=l1;res_start=res_p;l1=l1->next;}
else {res_p=l2;res_start=res_p;l2=l2->next;}
while(l1!=NULL&&l2!=NULL){
if(l1->val<l2->val){
res_p->next=l1;
res_p=res_p->next;
l1=l1->next;
/*
l1=l1->next;
res_p=res_p->next;
*/
}
else{
res_p->next=l2;
res_p=res_p->next;
l2=l2->next;
/*
l2=l2->next;
res_p=res_p->next;
*/
}
}
if(l1!=NULL) res_p->next=l1;
if(l2!=NULL) res_p->next=l2;
return res_start;
}
};
交了两次,第一次因为没有特判list为NULL的情况。
emmm...逻辑不够严密。
幸亏leetcode会给case的数据,不然我怕是想不出错在哪了。
运行时间是10ms左右
两种写法的区别..抱歉没有想出。我两种写法交上去都是ac,这是和具体上下文有关吗?