
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {boolean}
*/
var hasCycle = function(head) {
let slow = head
let fast = head
if(head==null||head.next==null){
return false
}
while(fast!=null && fast.next!=null){
slow = slow.next
fast = fast.next.next
if(slow==fast){
return true
}
}
return false
};
本文介绍了一种使用快慢指针的方法来判断链表是否存在循环。通过两个速度不同的指针遍历链表,如果存在循环则快指针最终会追上慢指针。此方法简单高效且不需要额外的空间。
1185





