《剑指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
之后;
然后将较小下一个节点和较大的节点,继续递归Merge
函数;
直到任意一个链表为空即可,返回另一个链表,链接到result
之后。