题目

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;
};