/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */

/**
 * 
 * @param head ListNode类 
 * @return bool布尔型
 */
function hasCycle( head ) {
    // write code here
    if (!head || !head.next) {
        return false
    }
    let quickPoint = head;
    let slowPoint = head;
    while(quickPoint  && slowPoint ){
        quickPoint = quickPoint.next;
        slowPoint = slowPoint.next;
        if(quickPoint){//这一步不写在一起是为了保证不存在quickPoint为空的情况下还进行.next的赋值
            quickPoint = quickPoint.next;
        }
        if(quickPoint == slowPoint){
            return true
        }
    }
    return false
}
module.exports = {
    hasCycle : hasCycle
};