合并两个排序的链表
问题
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路
两个指针指向两个链表,比较当前两个数,把较小的连到结果链上,指针后移,直到其中某个链表走完,把另一链表余下部分连到结果链末尾即可。
需要注意处理特殊输入(空)的情况。
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回合并后列表
def Merge(self, pHead1, pHead2):
# 判空
if not (pHead1 or pHead2):
return none
elif not pHead1:
return pHead2
elif not pHead2:
return pHead1
a = pHead1
b = pHead2
head = ListNode(0)
c = head
if a.val <= b.val:
c.next = a
c = a
a = a.next
else:
c.next = b
c = b
b = b.next
# 如果其中一个链表提前走完,我们需要判断
if a:
c.next = a
if b:
c.next = b
return head.next
https://codingcat.cn/article/25
参考