/** * @param {ListNode}head * @return {boolean} */ var hasCycle = function(head) { let now = head let t = 0 while(now) { if (t > 10000) returntrue now = now.next t += 1 } returnfalse };
方法二:哈希表
我们可以用一个 set 存下之前访问过的节点,如果再次访问了这个节点,则有环。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/** * @param {ListNode}head * @return {boolean} */ var hasCycle = function(head) { constset = new Set() let now = head while(now) { if (set.has(now)) return true set.add(now) now = now.next } return false };