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}
}
次に、Link List に 10 個の項目を追加し、reverse を呼び出します。すべてのノードを逆にすることはできますが、ヘッドをリストの最後にリセットすることはできず、元のヘッドと同じままです。
ヘッドがリストの最後にリセットされない理由を説明してください。