#习题解答
#答题思路:设置三个游标和一个头节点
class Solution:
# 返回合并后列表
def Merge(self, ph1, ph2):
# write code here
if ph1 == None:
return ph2
if ph2 == None:
return ph1
if ph1.val < ph2.val:
newhead = ph1
else:
newhead = ph2
tmp1 = ph1 #游标1
tmp2 = ph2 #游标2
if newhead == tmp1:
pre = newhead
tmp1 = tmp1.next
if newhead == tmp2:
pre = newhead
tmp2 = tmp2.next
while tmp1 and tmp2:
if tmp1.val<tmp2.val:
pre.next = tmp1
pre = tmp1
tmp1 = tmp1.next
else:
pre.next = tmp2
pre = tmp2
tmp2 = tmp2.next
if tmp1 == None:
pre.next = tmp2
else:
pre.next = tmp1
return newhead
牛客网剑指offer-输入两个非增链表,合并成一个非增的链表
本文详细介绍了如何合并两个已排序的链表。通过设置三个游标和一个头节点,实现高效地比较和连接节点,确保合并后的链表依然有序。算法逻辑清晰,适用于数据结构与算法的学习者参考。

被折叠的 条评论
为什么被折叠?



