You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解LeetCode 876. Middle of the Linked List:我的代码为何失效?

你的代码问题分析

核心问题:陷入死循环

你的while循环里,head.next这行只是读取了当前节点的next属性,但没有把head更新为下一个节点。这会导致循环条件while head永远为真——head一直停留在初始的第一个节点,永远不会变成None,程序会无限循环下去,最终超时或耗尽内存。

正确的写法应该改成head = head.next,这样每次循环才会让指针向后移动,直到遍历完整个链表。

次要问题:冗余的长度变量l

你额外维护了l变量来统计链表长度,但完全可以直接用len(arr)获取长度,和参考解法一样,这样能减少变量维护的成本,避免可能的计数错误。

修正后的代码

class Solution:
    def middleNode(self, head: Optional[ListNode]) -> Optional[ListNode]:
        
        arr = []
    
        while head:
            arr.append(head)
            head = head.next  # 修正:移动指针到下一个节点
            
        return arr[len(arr)//2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:40:54