タイトル説明
ルールの減少 - 私たちは会う合成リストする必要があることをした後、二人は単調に、当然のことながら、二つのリストを合成した後、入力リストおよび出力リストを増加させることができます。
アイデア: ...そこは本当にこの実際に再び右....感じるくらい練習しました。再帰の考え方では、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