剑指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