zknlz 2023-04-18 15:15 采纳率: 75%
浏览 10
已结题

leetcode141环形链表的while条件问题


class Solution(object):
    def hasCycle(self, head):
        """
        :type head: ListNode
        :rtype: bool
        """
        if head == None or head.next == None:
            return False
            
        fast = slow = head
        while head and head.next:
            slow = slow.next
            fast = fast.next.next
            if fast == slow:
                return True
        return False

在判断非空的时候 报错
但是又可以跑得通


AttributeError: 'NoneType' object has no attribute 'next'
    fast = fast.next.next

讲while head and head.next:改成while fast and fast.next:
就可以submit了 这是为什么 求解答

  • 写回答

2条回答 默认 最新

  • 乘风xs 2023-04-18 15:36
    关注

    在这个while head and head.next循环中,head和head.next是一直存在,也就是这个循环条件一直为true(因为内部没有改变它), 而fast指针在不断地往后移动,当移动到尾结点的时候,fast.next为null, 那么自然不会存在fast.next.next;所以会报错。
    写成whiel head and head.next是一个死循环,直到fast移动到尾结点时保存;
    写成while fast and fast.next 在fast移动到尾结点的时候,结束循环,程序正常。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 修改了问题 4月18日
  • 修改了问题 4月18日
  • 展开全部

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改