Set
var detectCycle = function(head) {
if(!head)return null;
if(!head.next)return null;
let cur = head,idx = 0,map = new Set();
while(cur){
const ans = map.has(cur);
if(ans){
return cur;
}
map.add(cur);
cur = cur.next;
idx++;
}
return null;
};
快慢指针
var detectCycle = function(head) {
if(!head)return null;
let quike = head;
let slow = head;
while(quike){
if(quike.next===null)return null;
quike = quike.next.next;
slow = slow.next;
if(quike===slow){
let temp = head;
while(temp!=slow){
temp = temp.next;
slow = slow.next;
}
return temp;
};
}
return null;
};