移除链表元素
删除链表节点的操作是将目标节点的前一个节点的next设置为目标节点的下一个节点:
但是如果删除的是头结点,则需要额外做头结点删除的特殊处理。为了可以统一删除操作,可以设置一个虚拟头结点
代码如下:
function ListNode(val, next) {
this.val = (val === undefined ? 0 : val)
this.next = (next === undefined ? null : next)
}
var removeElements = function (head, val) {
const dummyHead = new ListNode(-1, head);
let cur = dummyHead;
while (cur && cur.next !== null) {
if (cur.next.val === val) {
cur.next = cur.next.next;
} else {
cur = c