python刷题日记:剑指offer-合并两个排序的链表

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

解题思路

这题不难吧,直接给一个新链表,通过头插法插入即可,当一个链表都加入完毕后,注意要把另一个链表的剩余值导入新链表内。ps:该代码中一定需要pHead间接赋值,然后把头结点去掉

代码

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


你可能感兴趣的:(剑指offer)