剑指offer-python

面试17:合并两个有序链表

2018-06-24  本文已影响0人  fighting_css

【题目描述】
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
【思路】
遍历链表1和链表2,比较大小,当前谁小则加其加入结果res链表中。
【代码】

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回合并后列表
    def Merge(self, pHead1, pHead2):
        # write code here
        res=ListNode(0)
        head = res#记录头节点位置
        while pHead1!=None and pHead2!=None:
            #case1:pHead1的值大于pHead2
            if pHead1.val > pHead2.val:
                res.next = pHead2
                pHead2=pHead2.next
                res = res.next
            #case2:pHead1的值小于或等于huopHead2
            else:
                res.next = pHead1
                pHead1 = pHead1.next
                res = res.next
        if pHead1==None:
            res.next = pHead2
        if pHead2==None:
            res.next = pHead1
        return head.next
上一篇 下一篇

猜你喜欢

热点阅读