我正在学习找出链表中间节点的代码:
class Solution(object):
def middleNode(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
slow = fast = head
while fast and fast.next:
slow = slow.next
fast = fast.next.next
return slow
我注意到如果在循环中使用"while fast.next"代替"while fast and fast.next",结果是相同的。请问我为什么要使用fast和fast.next两个条件来终止while循环?据我理解,如果fast.next是None,那么fast始终是none,这个理解正确吗?
谢谢!
fast=None; print(fast.next)
。你认为结果会是什么? - user202729fast.next.next
,您必须检查fast.next
是否为有效值(非空)。 - Anand Sowmithiran