/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * * @param head ListNode类 * @return bool布尔型 * 在这个代码中,我们使用两个指针,一个快指针(fast)每次前进两步,一个慢指针(slow) * 每次前进一步。如果链表中有环,快指针最终会在某个时刻追上慢指针,从而返回true表示存在环。 * 如果链表没有环,快指针将会达到链表的末尾,循环结束,返回false表示无环。 * */ function hasCycle( head ) { // write code here if(!head || !head.next){ return false } let slow = head let fast = head while(fast && fast.next){ slow = slow.next fast = fast.next.next if(slow === fast){ return true } } return false } module.exports = { hasCycle : hasCycle };