合并两个排序的链表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

浙公网安备 33010602011771号