跳转至

LC141 - 环形链表

LinkedListCycle.go
package LinkedList

func hasCycle(head *ListNode) bool {
    slow, fast := head, head
    for fast != nil && fast.Next != nil {
        slow = slow.Next
        fast = fast.Next.Next
        if slow == fast {
            return true
        }
    }
    return false
}

快慢指针。若链表有环,则快慢指针必然会在环上重新相遇;否则必然不会重新相遇。