var LinkList = function (){
var heard = null
var length = 0
var node = function(element){
this.element = element
this.next = null
}
// 向链表后面添加元素
this.append = (element)=>{
var Node = new node(element)
if(heard==null){
heard = Node
}else {
var curren = heard
while(curren.next){
curren = curren.next
}
curren.next = Node
length++
}
}
// 向链表插入元素
this.insert=(postion,element)=>{
var Node = new node(element)
if(postion>-1&&postion<length){
if(postion==0){
Node.next = heard
heard = Node
}else {
var curren = heard
var proverd = null
var index = 0
while(index<postion){
proverd = curren
curren = curren.next
index ++
}
proverd.next = Node
Node.next = curren
}
}
}
// 根据索引移除链表的元素
this.RemoveAt=(postion)=>{
if(postion>-1&&postion<length){
if(postion==0){
var curren = heard
heard = curren.next
}
else {
var curren = heard
var proverd = null
var index = 0
while(index < postion){
proverd = curren
curren = curren.next
index ++
}
proverd.next = curren.next
}
length --
return curren
}
}
// 根据元素查找链表索引
this.indexOf=(element)=>{
var curren = heard
var index = 0
while(curren){
if(curren.element==element){
return index
}else {
curren = curren.next
index ++
}
}
return -1
}
// 移除摸一个元素
this.remove=(element)=>{
return this.RemoveAt(this.indexOf(element))
}
// 得到链表的头
this.getHeard=()=>{
return heard
}
}
var linklist = new LinkList()
linklist.append(1)
linklist.append(2)
linklist.append(4)