您的位置:首页 > 其它

LeetCode-Merge Two Sorted Lists

2015-03-09 02:03 316 查看
直观的三个指针,两个在比较list

public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if ( l1 == null || l2 == null){
if ( l1 != null)
return l1;
else
return l2;
}
ListNode res = new ListNode(0);
ListNode p1 = l1;
ListNode p2 = l2;
ListNode resp = res;
while ( p1 != null && p2 != null){ <span style="color:#ff0000;">//这里一开始判断写错了,写成了p1.next != null...这样的话就忽略了最后一个</span>
if ( p1.val > p2.val){
resp.next = p2;
p2 = p2.next;
}
else{
resp.next = p1;
p1 = p1.next;
}
resp = resp.next;
}
if ( p1 != null )
resp.next = p1;
if ( p2 != null )
resp.next = p2;
return res.next;
}
}


recursive:

class Solution {
public:
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
if(l1 == NULL) return l2;
if(l2 == NULL) return l1;

if(l1->val < l2->val) {
l1->next = mergeTwoLists(l1->next, l2);
return l1;
} else {
l2->next = mergeTwoLists(l2->next, l1);
return l2;
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: