数据结构与算法

合并两个排序的链表

2019-12-21  本文已影响0人  而立之年的技术控
微信图片_20191221170620.jpg
class Solution:
    # 返回合并后列表
    def Merge(self, pHead1, pHead2):
        # write code here
        if pHead1 is None:
            return pHead2
        if pHead2 is None:
            return pHead1
        
        def judge(pHead1, pHead2, tmp):
            while pHead1 and pHead2:
                if pHead1.val < pHead2.val:
                    tmp.next = pHead1
                    tmp = tmp.next
                    pHead1 = pHead1.next
                else:
                    tmp.next = pHead2
                    tmp = tmp.next
                    pHead2 = pHead2.next
            if pHead1 is None:
                tmp.next = pHead2
            if pHead2 is None:
                tmp.next = pHead1
        
        pHead =pHead1 if pHead1.val < pHead2.val else pHead2
        if pHead == pHead1:
            tmp = pHead1
            pHead1 = pHead1.next
            judge(pHead1, pHead2, tmp)
            return pHead
        if pHead == pHead2:
            tmp = pHead2
            pHead2 = pHead2.next
            judge(pHead1, pHead2, tmp)
            return pHead
上一篇 下一篇

猜你喜欢

热点阅读