None 访问 LinkedList 时出现类型错误

None Type Error Given to me when accessing LinkedList

我目前正在研究 LeetCode 问题,称为从列表末尾删除第 N 个节点。在其中,我在尝试访问等于头部的变量时收到 'NoneType' Error has no object next 错误。逻辑可能是错误的,但我不确定为什么我会在这个特定变量上出错(因为我已经检查过头部或 head.next 是否为 None)。 “ while runner.next is not None:” 行给我一个错误。我不一定需要帮助解决这个问题,就像为什么会出现这个错误一样。谢谢! 小编辑。对于大多数示例情况,代码运行良好,但此错误普遍存在的地方是列表看起来像 1 -> 2 - >None(1 是头)。

        if not head: 
            return
        if head.next == None:
            return
        
        count = 0
        
        walker = head
        runner = head
        if not walker or not runner:
            return
        
        while runner.next is not None:
            while(count < n):
                runner = runner.next
                count = count + 1
            
            walker = walker.next
            runner = runner.next
        
        walker.next = walker.next.next
        
        return head

在您提供的示例中,无法访问 runner.next 属性,因为转轮是 None。如果 n > 0,你的内部 while 循环至少迭代一次,沿着链表前进,然后在外循环结束时再次前进。这使得 runner 等于 None。因此,当 while 循环尝试检查条件时,它会尝试访问 runner.next 并给出错误。您可能希望更新您的条件以检查跑步者是否也不是 None.