如果没有环,那就说每个节点只访问一遍,如果有环,之前走过的节点会被再访问,那标记下走过的节点就行。 我这里是走过的节点,会标记下next变成undefined。 这样可以不增加空间,因为默认走到头是null,设成undefined可以保证是和之前的不冲突。实际上设置成其他保证唯一的值也可以。
function hasCycle( head ) {
// write code here
let p = head;
while (p !== null) {
let temp = p;
p = p.next;
if (p === undefined) {
return true;
}
temp.next = undefined;
}
return false;
}
module.exports = {
hasCycle : hasCycle
};