You need to enable JavaScript to run this app. LeetCode 21 合并两个有序链表Python代码的两处逻辑疑问
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode 21 合并两个有序链表Python代码的两处逻辑疑问

合并两个有序链表代码疑问解答

疑问1:循环结束后直接赋值剩余链表是否只会添加第一个节点

不会。
链表的每个ListNode实例的next属性本身就指向了下一个节点,剩余的l1/l2本身就是一段已经串好的完整有序链表的头节点。执行tail.next = l1之后,tail的下一个节点就接到了这段剩余链表的头部,自然就带上了后续所有节点,不需要逐个遍历追加。
不需要更新l1和tail的原因:此时两个链表中已经有一个遍历完成,没有剩余节点需要再比较拼接,后续不需要再修改链表的指向,所以不需要移动tail指针,也不需要修改l1/l2的指向。

疑问2:返回head.next是否会返回完整链表

是。
链表的标识逻辑就是以头节点作为整个链表的代表,函数返回的head.next是合并完成后整个链表的头节点引用。调用方拿到这个头节点之后,就可以通过不断访问next属性遍历到从该节点开始、直到next为None的所有节点,不需要额外返回其他内容。


内容的提问来源于stack exchange,提问作者dasani7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 20:21:00