functionprepend(head, value){return{
value: value,
next: head
}}
取出鏈表第n個節點的值:
functionnth(head, n){var count =0var p = head
while(count < n && p.next !=null){
count++
p = p.next
}if(count != n){return undefined
}return p.value
}
取出鏈表第n個節點的值,遞歸版。
functionnth(head, n){if(head ==null){return undefined
}if(n ===0){return head.value
}returnnth(head.next, n -1)}
向鏈表的第n個位置添加一個新節點。
functioninsert(head, n, value){var node ={
value: value,
next:null}if(n ===0){
node.next = head
return node
}//處理添加到第0個位置的情況if(head ==null){return node
}//處理鏈表爲空的情況var p = head
for(var i =0; i < n -1; i++){
p = p.next
}
node.next = p.next
p.next = node
return head
}
向鏈表的第n個位置添加一個新節點,遞歸版。
functioninsert(head, n, value){var node ={
value: value,
next:null}if(head ===null){return node
}if(n ==0){
node.next = head
return node
}
head.next =insert(head.next, n -1, value)return head
}
刪除鏈表第n個位置上的節點:
functionremove(head, n){if(!head){returnnull}if(n ===0){return head.next
}var p = head
for(var i =0; i < n -1; i++){
p = p.next
}
p.next = p.next.next
return head
}