package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 
 * @param head ListNode类 
 * @return bool布尔型
*/
func hasCycle( head *ListNode ) bool {
    if head == nil || head.Next == nil {
        return false
    }
    next := head.Next
    fast :=  next.Next
    slow  := next
    
    for {
        if fast == slow {
            return true
        }
        if fast == nil || slow == nil {
            break
        }
        
        fast = fast.Next
        if fast!= nil {
            fast = fast.Next
        } 
        slow  = slow.Next
    }
    return false
    
}