我想在 Javascript 中创建一个 Linked List 对象,并尝试反转它。
我认为这是一个非常简单的问题,但我不知何故被卡住了。这是我的代码。
var Node = function (val) {
this.value = val;
this.next = null;
};
var LinkList = function (node) {
var head = node;
function append(val) {...}; //works fine
function toString() {...}; //works fine
function reverse() {
if (!head.next) {
return;
}
var prev = head;
var cur = head.next;
while (cur) {
var temp = cur.next;
cur.next = prev;
prev = cur;
cur = temp;
}
head = prev;
}
return {head: head, append: append, toString: toString, reverse: reverse}
}
然后,我将 10 个项目附加到链接列表并在其上调用 reverse。它能够反转所有节点,但无法将头重置到列表的末尾,但与原始头保持相同。
请解释为什么头部没有被重置到列表的末尾。