該問題可以看做一個遞歸問題,首先比較兩個鏈表的首節(jié)點漠嵌,然后選擇比較小的一個纽哥,接著把剩下的再作為一個整體卒落。。。
/**
* 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) {
if(l1 == NULL)//遞歸程序中最關(guān)鍵的就是終止條件
return l2;
else if(l2 == NULL)
return l1;
ListNode* pMergedHead = NULL;
if(l1 -> val < l2 -> val){
pMergedHead = l1;
pMergedHead -> next = mergeTwoLists(l1 -> next, l2);
}
else{
pMergedHead = l2;
pMergedHead -> next = mergeTwoLists(l1, l2 -> next);
}
return pMergedHead;
}
};
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者