剑指offer 17 合并两个排序的链表

来源:互联网 发布:广州南方电网待遇 知乎 编辑:程序博客网 时间:2024/05/17 06:47

题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:
遍历两个链表,同时比较大小,把小的节点加入新的链表。

# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # 返回合并后列表    def Merge(self, pHead1, pHead2):        # write code here        pRes = None        if pHead1 == None:            return pHead2        elif pHead2 == None:            return pHead1        if pHead1.val < pHead2.val:            pRes = pHead1            pHead1 = pHead1.next        else:            pRes = pHead2            pHead2 = pHead2.next        ptmp = pRes        while pHead1 != None and pHead2 != None:            if pHead1.val < pHead2.val:                ptmp.next = pHead1                ptmp = ptmp.next                pHead1 = pHead1.next            else:                ptmp.next = pHead2                ptmp = ptmp.next                pHead2 = pHead2.next        while pHead1 != None:            ptmp.next = pHead1            ptmp = ptmp.next            pHead1 = pHead1.next        while pHead2 != None:            ptmp.next = pHead2            ptmp = ptmp.next            pHead2 = pHead2.next        return pRes