python如何合并两个链表

python如何合并两个链表

作者:Rhett Bai发布时间:2026-01-13阅读时长:0 分钟阅读次数:7

用户关注问题

Q
怎样将两个链表合并成一个有序链表?

我有两个排序好的链表,想把它们合并成一个新的排序链表,应该怎么实现?

A

合并两个有序链表的方法

可以使用双指针方法同时遍历两个链表,比较当前节点的值,将较小节点加入新链表,最后将剩余节点直接接在新链表末尾。该方法时间复杂度为O(n),空间复杂度为O(1)。

Q
怎样用Python代码合并两个单链表?

有没有简单的Python示例代码展示如何合并两个链表?

A

Python合并链表示例代码

定义链表节点类,然后编写一个函数遍历两个链表,比较节点值,按顺序连接节点。代码可以像这样实现:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def mergeTwoLists(l1, l2):
    dummy = ListNode()
    current = dummy
    while l1 and l2:
        if l1.val < l2.val:
            current.next = l1
            l1 = l1.next
        else:
            current.next = l2
            l2 = l2.next
        current = current.next
    current.next = l1 if l1 else l2
    return dummy.next
Q
合并链表时需要注意什么?

在合并两个链表过程中,有哪些常见的坑或者细节值得关注?

A

链表合并注意事项

要确保链表的节点正确链接,避免出现断链或循环。初始化一个哑节点作为合并链表的起点方便操作。处理完一个链表后,记得将另一个链表剩余节点接上。最后返回哑节点的下一个节点作为合并后的链表头。还要注意输入链表是否为空的边界情况。