JavaScript:leetcode_21.2つの順序付きチェーンテーブルを結合する(再集計)


タイトルの説明

                     。                       。 

  :

  :1->2->4, 1->3->4
  :1->1->2->3->4->4


問題を解く構想1


実は集計ソートの最後のステップです.2つの順序付きシーケンスを合成します.チェーンテーブルを再帰的に巡るだけだ.
  • を再帰し、min(t 1,t 2)を新しいチェーンに加える.
  • t 1が小さいと、反復t 1=t 1となる.next、次のラウンドに入ります.

  • コード実装1

    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} l1
     * @param {ListNode} l2
     * @return {ListNode}
     */
    var mergeTwoLists = function(l1, l2) {
        let res = new ListNode(0);
        if (l1 && l2) {
            mergeL(l1,l2,res)
        } else {
            return l1 || l2
        }
        return res
    };
    
    function mergeL(l1, l2, res) {
        if (l1.val <= l2.val) {
            res.next = l1
            res.next.next = l2
        } else {
            res.next = l2
            res.next.next = l1
        }
        if (l1.next && l2.next) {
            mergeL(l1.next, l2.next, res.next.next)
        }
    }