在javascript链表中令temp=p, p=p.next, temp.next=undefined。为什么还能取到p.next本来的值?
function ListNode(x) {
this.val = x;
this.next = null;
}
var head = new ListNode(-1);
var cur = new ListNode(1);
head.next = cur;
for (var i = 2; i < 5; i++) {
cur.next = new ListNode(i);
cur = cur.next;
}
function hasCycle(head) {
//console.log('head', head);
let p = head;
while (p !== null) {
let temp = p;
console.log(p, p.next);
p = p.next;
console.log(p.next);
if (p === undefined) return true;
temp.next = undefined;
//console.log('temp.next', temp.next);
}
return false;
}
console.log(hasCycle(head.next));