一次チェーン表-二つの順序付きチェーン表を連結する(JavaScript)
878 ワード
二つの秩序チェーンテーブルを新しい秩序チェーンテーブルに結合して返します.新しいチェーンは与えられた二つのチェーンのすべてのノードをつなぎ合わせることによって構成されます.
例:
方法はたくさんあります.前に反復法を書きましたが、今回は再帰法を書きましょう.
この中のチェーンが空だとしたら、きっともう一つは空ではないです.
二つのチェーンのヘッドノードのサイズを比較して、より小さいものを新しいチェーンのヘッドノードとして、再帰的に方法を起動すればいいです.
例:
:1->2->4, 1->3->4
:1->1->2->3->4->4
考え方:方法はたくさんあります.前に反復法を書きましたが、今回は再帰法を書きましょう.
この中のチェーンが空だとしたら、きっともう一つは空ではないです.
二つのチェーンのヘッドノードのサイズを比較して、より小さいものを新しいチェーンのヘッドノードとして、再帰的に方法を起動すればいいです.
/**
* 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) {
if (!l1) return l2;
if (!l2) return l1;
let head;
if (l1.val <= l2.val) {
head = l1;
head.next = mergeTwoLists(l1.next, l2);
} else {
head = l2;
head.next = mergeTwoLists(l1, l2.next);
}
return head
};