# 什么是链表
链表由独立的节点构成,每个节点之间使用变量进行连接。根据节点中存放的节点地址可以分为:
- 单向链表(存放着下一跳的地址)
- 双向链表(存放着逻辑上的上一跳和下一跳)
# 单向链表
只存放这下一跳的地址。
# 代码实现
function listNode(val,next){
this.val = val
this.next = next
}
let head = new ListNode(1,null)
head.next = new ListNode(2)
# 链表的遍历
function map(head){
let point = head
while(point){
point = point.next
}
}
# 链表的插入
function insert(head,val){
let point = head
while(point.next){
point = point.next
}
// 尾部插入
point.next = new ListNode(val)
}
# 某一个节点的删除
function nodeDelete(head, val){
if(head.val === val) return head.next
let point = head
while(point.next){
if(point.next.val === val){
point.next = point.next.next
break;
}
point = point.next
}
}
// 尾部插入
nodeDelete(head, 123)