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

タイトル説明

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

アイデア: ...そこは本当にこの実際に再び右....感じるくらい練習しました。再帰の考え方では、2つの増加をマージする問題がリストに変換することができ、それぞれの二つのリストのヘッドノードの小さい方を探して、リストの最初のノードの後に次のノードは、ヘッドの残りの低い見つけるためにノード。特別な配慮を必要とする2つのリストが空であり、唯一のリストがある空です。

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
        return self.findSmall(pHead1,pHead2)

    def findSmall(self,pHead1,pHead2):
        if not pHead1 and pHead2:
            return pHead2
        if not pHead2 and pHead1:
            return pHead1
        if not (pHead1 or pHead2): #两者都是空
            return None
        #比较两个头节点,找出小的那个赋给pNode
        if pHead1.val<=pHead2.val:
            pNode=pHead1
            pNew=pHead1.next
            pNode.next=None #这句可以注释掉
            pNode.next=self.findSmall(pNew,pHead2)
        else:
            pNode=pHead2
            pNew=pHead2.next
            pNode.next=None #这句可以注释掉
            pNode.next=self.findSmall(pHead1,pNew)
        return pNode

 

公開された69元の記事 ウォンの賞賛149 ・は 80000 +を見て

おすすめ

転載: blog.csdn.net/luolan9611/article/details/104825851