LeetCode-21. 2つの順序付きチェーンテーブルを結合

978 ワード

タイトル記述2つの整列チェーンテーブルのマージ
2つの順序付きチェーンテーブルを新しい順序付きチェーンテーブルに結合して返します.新しいチェーンテーブルは、指定された2つのチェーンテーブルのすべてのノードを接合することによって構成されます.

入力:1->2->4、1->3->4出力:1->1->2->3->4->4
問題を解く構想.
  • 新しいヘッダーを作成します.
  • は、2つのチェーンテーブルのヘッダノードを比較し、ヘッダがより小さなヘッダノードを指すようにする.
  • は、新しいヘッダの次のノード
  • を返す.
    コード#コード#
    class Solution {
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
            ListNode *head = new ListNode(0);
            ListNode *p = head;
            while(l1 && l2){
                if(l1->val < l2->val)
                {
                    p->next = l1;
                    p = l1;
                    l1 = l1->next;
                }else{
                    p->next = l2;
                    p = l2;
                    l2 = l2->next;
                }
            }
            if(l1){
                p->next = l1;
            }
            if(l2){
                p->next = l2;
            }
            return head->next;
        }
    };