件名の説明:2は、新しいソートされたリストとリターンにリストを命じました。新しいリストは、二つのリストで構成与えられたモザイク内のすべてのノードです。
例:
入力:1-> 2-> 4、1-> 3-> 4
出力:1-> 1-> 2-> 3-> 4-> 4
:アイデア問題解決
;まず、絶えず後方リンクリストを移動し、二つのリストのポインタとして整然とした、HEAD1とHEAD2を知っている
私たちは、HEAD2 HEAD1と比較して、新たなヘッドノード、ノードの現在のヘッドを必要とする値の結果
、その後に頭部>次に、(例えばhead1->ヴァル<= head2->ヴァル ) 比較のhead1->次HEAD2結果であり、
それは再帰的なソリューションを使用する本明細書で企図され、終了条件は、最後まで鎖です。
コードは以下の通りであります:
/**
* 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)
{
return l2;
}
if(l2==NULL)
{
return l1;
}
ListNode* head=NULL;
if(l1->val<=l2->val)
{
head=l1;
head->next=mergeTwoLists(l1->next,l2);
}
else
{
head=l2;
head->next=mergeTwoLists(l1,l2->next);
}
return head;
}
};
いくつかのLeetCodeトピックを更新し続けて、みんなと一緒に共有へようこそ