剣指Offer-16-2つのソートされたチェーンテーブルをマージ
1238 ワード
タイトルの説明
2つのソートされたチェーンテーブルをマージ
2つの単調に増加したチェーンテーブルを入力し、2つのチェーンテーブルの合成後のチェーンテーブルを出力します.もちろん、合成後のチェーンテーブルは単調で減少しない規則を満たす必要があります.
構想
チェーンテーブル1のヘッダノードの値がチェーンテーブル2のヘッダノードの値よりも小さい場合、チェーンテーブル1のヘッダノードは、連結後のチェーンテーブルのヘッダノードである.残りのノードでは、チェーンテーブル2のヘッダノードの値がチェーンテーブル1のヘッダノードの値よりも小さいため、チェーンテーブル2のヘッダノードは残りのノードのヘッダノードであり、このノードを以前にマージされたチェーンテーブルのテールノードとリンクする.
Code Python JavaScript
2つのソートされたチェーンテーブルをマージ
2つの単調に増加したチェーンテーブルを入力し、2つのチェーンテーブルの合成後のチェーンテーブルを出力します.もちろん、合成後のチェーンテーブルは単調で減少しない規則を満たす必要があります.
構想
チェーンテーブル1のヘッダノードの値がチェーンテーブル2のヘッダノードの値よりも小さい場合、チェーンテーブル1のヘッダノードは、連結後のチェーンテーブルのヘッダノードである.残りのノードでは、チェーンテーブル2のヘッダノードの値がチェーンテーブル1のヘッダノードの値よりも小さいため、チェーンテーブル2のヘッダノードは残りのノードのヘッダノードであり、このノードを以前にマージされたチェーンテーブルのテールノードとリンクする.
Code
class Solution:
#
def Merge(self, pHead1, pHead2):
# write code here
if pHead1 is None:
return pHead2
if pHead2 is None:
return pHead1
if pHead1.val < pHead2.val:
pHead1.next = self.Merge(pHead1.next,pHead2)
return pHead1
else:
pHead2.next = self.Merge(pHead1,pHead2.next)
return pHead2
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function Merge(pHead1, pHead2) {
if (pHead1 === null) return pHead2;
if (pHead2 === null) return pHead1;
if (pHead1.val <= pHead2.val) {
pHead1.next = Merge(pHead1.next, pHead2);
return pHead1;
} else {
pHead2.next = Merge(pHead1, pHead2.next);
return pHead2;
}
}