定义一个从链表中移除元素的方法 removeAt和remove方法
- removeAt方法的实现
this.removeAt = function(position){
//越界检查
if(position>-1&&position<length){
var current = head,
previous,
index = 0;
//移除第一项
if(position === 0){
head = current.next;
}else{
while (index++ < position){
previous = current;
current = current.next;
}
//将previous与current的下一项链接起来;跳过current,从而移除它
previous,next = current.next;
}
length--;
return current.element;
}else{
return null;
}
};
2.remove方法
this.remove = function(element){
var index = this.indexOf(element);
return this.removeAt(index);
};
toString方法会把LinkkedList对象转化成一个字符串 3. toString方法的实现
this.toString = function (){
var current = head,
string = ' ';
while(current){
string = current.element;
current = current.next;
}
return string;
};
indexOf方法接受一个元素的值,如果在列表中找到它,就返回元素的位置,否则返回-1 4.indexOf方法的实现
this.indexOf = function(element){
var current = head,
index = -1;
while(current){
if(element ===current.element){
return index;
}
index++;
current = current.next;
}
return -1;
};