双指针,一个走得快一个走得慢。如果是环形链表一定能相遇。
var hasCycle = function(head) {
let quike = head;
let slow = head;
while(quike){
if(quike.next===null)return false;
quike = quike.next.next;
slow = slow.next;
if(quike===slow)return true;
}
return false;
};
Set
var hasCycle = function(head) {
let set = new Set(), cur = head;
while(cur){
let temp = set.has(cur);
if(!temp){
set.add(cur);
cur = cur.next;
}else{
return true;
}
}
return false;
};