链表定义
- 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。
- 链表的入口节点称为链表的头结点也就是head。
单链表
- 单链表中的指针域只能指向节点的下一个节点。
双链表
- 双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。
- 双链表既可以向前查询也可以向后查询。
链表操作
删除节点
增加节点
题目
JS解题示例代码
// 定义单链节点
function ListNode(val, next) {
this.val = (val === undefined ? 0 : val)
this.next = (next === undefined ? null : next)
}
var removeElements = function (head, val) {//定义一个移除元素的函数
const res = new ListNode(0, head)//新建一个指向原头节点的新节点
let cur = res//当前指针指向新节点
//当前指针指向的下一个节点存在时一直循坏,直到遍历完所有节点
while (cur.next) {
if (cur.next.val === val) {//下一个节点与val相等
cur.next = cur.next.next//将指针指向下下个节点
} else {
cur = cur.next//如果不相等,当前指针后移一位
}
}
return res.next//返回新的头节点
}
图片参考:@代码随想录