判断链表中是否有环
解题思路:
我们使用两个指针,fast 与 slow。
它们起始都位于链表的头部。随后,slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则 fast 指针最终将再次与 slow 指针在环中相遇。
def hasCycle(self, head: ListNode) -> bool:
# write code here
if not head:
return head
# 双指针 快慢指针
slow = head
fast = head
while slow and fast:
slow = slow.next
if fast.next:
fast = fast.next.next
else:
return False
# 当双指针相遇 即表示指针有环
if slow == fast:
return True
return False

浙公网安备 33010602011771号