合并两个排序的链表Python

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

# -*- 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
            a=ListNode(0) #需要一个新链表
            b=a
            while pHead1 and pHead2: #当两个链表内都有节点时,进入循环,进行比较
                if pHead1.val >= pHead2.val:
                    a.next=pHead2  #当链表1的元素大于链表2中的元素时,a的下一个节点指向链表2
                    pHead2=pHead2.next #列表2向后移动一位,因为链表2的第二个元素也可能比链表1的第一个元素小
                else:  #当链表1的元素小于链表2的时候
                    a.next=pHead1
                    pHead1=pHead1.next
                a=a.next #a链表有第一个节点,移动到第二个节点位置,继续循环
            if pHead1: #上面循环是两个链表中同位置的节点都有,下面要考虑剩下的节点也要添加对新的链表当中
                a.next=pHead1    
            if pHead2:
                a.next=pHead2
            return b.next

  

猜你喜欢

转载自www.cnblogs.com/cong3Z/p/12924465.html