function hasCycle(head: ListNode | null): boolean {
if (!head) {
return false
}
let slow = head
let fast = head.next
while (fast && fast.next) {
// 如果有环,那么一定会在环里面相遇
if (fast === slow) {
return true
}
fast = fast.next.next
slow = slow.next
}
// 如果快指针可以遍历完,说明没有环
return false
}