《剑指Offer》刷题之合并两个排序的链表
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 - 示例:
示例 1 :
输入:{1,3,5},{2,4,6}
返回值:{1,2,3,4,5,6}
class Solution:
def Merge(self, pHead1, pHead2):
if not pHead1:
return pHead2
if not pHead2:
return pHead1
if pHead1.val < pHead2.val:
result = pHead1
result.next = self.Merge(pHead1.next, pHead2)
else:
result = pHead2
result.next = self.Merge(pHead1, pHead2.next)
return result
- 第一步,当前操作是将值较小的一个节点,赋值给result;
- 第二步,递归点是较小链表的下一个节点和另一个链表,继续递归;
- 第三步,递归结束条件,其中有一个链表为空。