题目:判断一个单链表是否有环
方法:快慢指针
判断是否存在环,用fast和slow两个指针,从head开始,一个走一步,一个走两步,如果最终到达同一个结点,则说明存在环。
class Solution(object):
def hasCycle(self, head):
"""
:type head: ListNode
:rtype: bool
"""
if head == None or head.next == None:
return False
slow = fast = head
while fast and fast.next:
slow = slow.next #慢指针一次一步
fast = fast.next.next#快指针一次两步
if slow == fast:#相遇时,刚好慢的走一圈,快的走两圈
return True