西大的阳光下有大洋的影子

我不上网了

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

  

posted on 2019-09-04 17:13  我不上网了  阅读(114)  评论(0编辑  收藏  举报

导航