代码逻辑中比较重要一点就是快指针的回调判断
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * * @param head ListNode类 * @return bool布尔型 */ function hasCycle( head ) { let flag = false; const check = function(s, f) { if (f && f.next) { // 这里只用判断快指针即可 s = s.next; f = f.next.next; s === f ? flag = true : check(s, f); } } check(head, head); return flag; } module.exports = { hasCycle : hasCycle };