方法一:暴力法
class Solution:
"""
思路:检查一个结点是否已经被访问过
"""
def hasCycle(self, head: ListNode) -> bool:
lst = []
while head != None : #当head为空结点时表示已经循环过一遍了
if head in hashset :
return True
else :
lst.append(head)
head = head.next
return False
方法二:快慢指针
class Solution:
"""
快指针追到慢指针说明有环 ,追不到寿命没有环
"""
def hasCycle(self, head: ListNode) -> bool:
fast = head
slow = head
while fast and fast.next :
fast = fast.next.next
slow = slow.next
if fast == slow : return True
return False