题目描述: 解题思路:
设置快(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
}