旧魏(16マージ2は、リストを並べ替え)---ブラシタイトルシリーズを学ぶためにあなたを取るために提供を受賞します

16.マージ2つのソートされたリスト

問題:

ルールの減少 - 私たちは会う合成リストする必要があることをした後、二人は単調に、当然のことながら、二つのリストを合成した後、入力リストおよび出力リストを増加させることができます。

ソリューション:

思想:

  • この質問は、再帰的な実装を使用することができ、新しいリストが新しいノードを作成する必要はありません、我々は再帰的に3つの要素は以下のとおり
  • 終了条件:エンドのL2 L1が空または空であるときに、2つは、リストL1およびL2と命名されています
  • 戻り値:各レイヤーの呼び出しは、ソートされたリストの先頭を返します
  • この再帰レベルの内容:ヴァル・L1の値が小さい場合は、ソートされたリストのヘッドと、その後l1.next接触、L2共感
  • O(M + N)O(M + N)、長さL1のMMは、NNである長さL2

Pythonコード

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回合并后列表
    def Merge(self, pHead1, pHead2):
        # write code here
        if(pHead1==None):
            return pHead2
        if(pHead2==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
公開された160元の記事 ウォン称賛30 ビュー70000 +

おすすめ

転載: blog.csdn.net/yixieling4397/article/details/104905827