我正在用 JavaScript 做一个简单的链接列表(我是新手),我有以下代码,
var List = function () {
this.LinkedList = {
"Head": {}
};
};
List.prototype = {
insert: function (element) {
var Node = this.head();
while (Node.hasOwnProperty("Node")) {
Node = this.next(Node);
}
Node["Node"] = {
"element": element
};
},
remove: function (element) {
var Node = this.head();
while (Node.element != element) {
Node = this.next(Node);
}
delete Node.element;
Node = Node.Node; //overwriting Node with Node.Node
},
next: function (Node) {
return Node.Node;
},
head: function () {
return this.LinkedList.Head;
},
getList: function () {
return this.LinkedList;
}
};
当我做插入时,它做得很好,
var myList = new List();
myList.insert(1);
myList.insert(5);
myList.insert(6);
myList.insert(2);
这给了我一个列表,
{
"Head": {
"Node": {
"element": 1,
"Node": {
"element": 5,
"Node": {
"element": 6,
"Node": {
"element": 2
}
}
}
}
}
}
现在,当我进行删除时,它没有给出正确的列表:
myList.remove(5);
{
"Head": {
"Node": {
"element": 1,
"Node": {
"Node": {
"element": 6,
"Node": {
"element": 2
}
}
}
}
}
}
我想要得到的是这样的:
{
"Head": {
"Node": {
"element": 1,
"Node": {
"element": 6,
"Node": {
"element": 2
}
}
}
}
}
关于如何解决这个问题的任何想法?提前致谢。