剣指Offer-16-2つのソートされたチェーンテーブルをマージ

1238 ワード

タイトルの説明
2つのソートされたチェーンテーブルをマージ
2つの単調に増加したチェーンテーブルを入力し、2つのチェーンテーブルの合成後のチェーンテーブルを出力します.もちろん、合成後のチェーンテーブルは単調で減少しない規則を満たす必要があります.
構想
チェーンテーブル1のヘッダノードの値がチェーンテーブル2のヘッダノードの値よりも小さい場合、チェーンテーブル1のヘッダノードは、連結後のチェーンテーブルのヘッダノードである.残りのノードでは、チェーンテーブル2のヘッダノードの値がチェーンテーブル1のヘッダノードの値よりも小さいため、チェーンテーブル2のヘッダノードは残りのノードのヘッダノードであり、このノードを以前にマージされたチェーンテーブルのテールノードとリンクする.
Code
  • Python
  • 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
    
  • JavaScript
  • /*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;
      }
    }