我想在Javascript中创建一个链接列表对象,我尝试将其反转。Javascript链接列表参考
我认为这是一个非常简单的问题,但我不知何故被卡住了。这是我的代码。
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个项目追加到链接列表中并对其进行反向调用。它能够反转所有的节点,但是它无法将头重置到列表的末尾,但保持与原始头相同。
请解释为什么头不重置到列表的末尾。
谢谢。它是否是'!this.head'而不是'!this.next'? – 2012-08-07 15:25:11
对,'!this.head.next',对不起。 – katspaugh 2012-08-07 15:41:27