luoheng
10/29/2019 - 2:16 AM

hasCycle

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func hasCycle(head *ListNode) bool {
    p, p2 := head, head
    for p != nil && p2 != nil {
        p, p2 = p.Next, p2.Next
        if p2 == nil {
            break
        }
        p2 = p2.Next
        if p == p2 {
            return true
        }
    }
    return false
}