1. 快慢指针
class Solution:
def hasCycle(self , head ):
if not head:
return False
slow = head;
fast = head;
while fast and fast.next :
slow = slow.next
fast = fast.next.next
if (slow == fast):
return True
return False
2. 使用集合的方式
把所有的node加入到集合中,如果最后遍历出的node已经存在于集合中,则说明有环,反之则无环
class Solution:
def hasCycle(self , head ):
if not head:
return False
setCycle = set()
while head:
if head in setCycle:
return True
setCycle.add(head)
head = head.next
return False 
京公网安备 11010502036488号