题目描述: alt 解题思路:

设置快(fast)、慢(slow)两个指针,若链表有环,则其指针不会为null,并且总会有某次循环使得快慢指针相等

解题代码:

function hasCycle( head ) {
    // write code here
    if(head == null || head.next == null) {
        return false
    }
    let fast = head.next;
    let slow = head;
    while(fast != slow) { // 若快慢指针不相等,执行循环
        if(fast == null || fast.next == null) return false; // 若快指针或其下一个指针为空,证明其没有循环
        fast = fast.next.next
        slow = slow.next
    }
    return true // 此时状态为快慢指针相等,则返回true
}