题目描述
- 输入两个单调递增的链表
- 输出两个链表合成后的链表
- 合成后的链表满足单调不减规则
解题思路
思路1
- 递归
def Merge(self, pHead1, pHead2):
merge = None
if pHead1 == None:
return pHead2
elif pHead2 == None:
return pHead1
if pHead1.val > pHead2.val:
merge = pHead2
pHead2 = pHead2.next
merge.next = self.Merge(pHead1,pHead2)
else:
merge = pHead1
pHead1 = pHead1.next
merge.next = self.Merge(pHead1,pHead2)
return merge
思路2
- 非递归
class Solution:
def Merge(self, pHead1, pHead2):
p = merge = ListNode(0)
while pHead1 and pHead2:
if pHead1.val > pHead2.val:
merge.next = pHead2
pHead2 = pHead2.next
else:
merge.next = pHead1
pHead1 = pHead1.next
merge = merge.next
merge.next = pHead1 or pHead2
return p.next