整体解题思路为使用快慢指针 var hasCycle = function (head) { if (!head) return false; let p = head; // 慢指针,每次一步 let q = head; // 快指针,每次两步 while (q && q.next) { p = p.next; q = q.next.next; // p==q的情况下就是有环 if (p === q) { return true; } } return false; }