141. 环形链表

141. 环形链表

快慢指针

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
}