LeetCode21(簡単):2つの注文のリストをマージ

件名の説明: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トピックを更新し続けて、みんなと一緒に共有へようこそ

リリース元の4件の記事 ウォンの賞賛0 ビュー33

おすすめ

転載: blog.csdn.net/qq_39484438/article/details/104523421