剑指offer——16合并两个链表
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路
基础题,就是按照两个链表中小的节点,插入新的链表,将位置移到下一个。在一个链表结束后要判断另一个链表是否还有,有的花直接加入即可。
class Solution:
# 返回合并后列表
def Merge(self, pHead1, pHead2):
# write code here
z = ListNode(90)
p = z#定义头结点位置
if pHead1==None:
return pHead2
if pHead2==None:
return pHead1
#当两个链表都有值时
while pHead1 and pHead2:
#如果p1的值大于p2的值,p2的值应该进行头插
if pHead1.val>=pHead2.val:
z.next = pHead2
pHead2 = pHead2.next
#如果p1的值小于p2的值,p1后移
else:
z.next = pHead1
pHead1 = pHead1.next
z = z.next
if pHead1:
z.next = pHead1
if pHead2:
z.next = pHead2
return p.next
浙公网安备 33010602011771号