# 142.环形链表 II
# 解题思路
遍历所有的节点,并把访问过的节点放入一个哈希表中,如果遍历到已经访问过的节点,则说明存在环路。
var detectCycle = function (head) {
if (!head || !head.next) return null
let visited = new WeakMap()
visited.set(head, 1)
let ret = null
let curr = head.next
while (curr.next) {
if (visited.has(curr)) {
ret = curr
break
} else {
visited.set(curr, 1)
}
curr = curr.next
}
return ret
}
另外官网还提供了一种方法,使用快慢指针的解题思路 (opens new window)。
# 参考
← 分隔链表 92.反转链表 II →