python排序链表_合并两个排序的链表(python)

一,问题

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

二,分析

先举一个栗子:

有如下两个链表:

我们做一个指针叫top,他指向两个链表中表头较小的那个。之后他就不动了,等着被输出

再做两个指针,一个叫up一个叫down,分别指向上链表和下链表

up=pHead1

down=pHead2

top=None

if up.val>down.val:

top=pHead2

else:

top=pHead1

top的位置确定后,up或者down就要让位给top

if top==pHead1:

up=up.next

else:

down=down.next

然后开始比较up和down的值谁大

这时还需要定义一个操作next指针的操盘手,他叫pre,让pre先指向top

pre=top

然后看up和down谁的值小,就让pre操作next指针指向谁, 然后pre跳过去占他的位置 ,并让他往后跳一个

while up and down:

if up.val

pre.next=up

pre=up

up=up.next

直到up或者down指向了None,就让先到None的那个链表的最后一个结点指向另一个链表剩余的结点

if up==None:

pre.next=down

else:

pre.next=up

最后,输出top

三,代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值