Orion's Studio.

算法(8)-移除链表元素

2024/03/10

题目(easy):

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

思路

C++ 要注意清理节点内存。

移除头结点和其他节点的操作是不同的,可以设置一个虚拟头结点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

function ListNode(val, next) {
this.val = (val===undefined ? 0 : val)
this.next = (next===undefined ? null : next)
}

function removeElements(head, val) {
const ret = new ListNode(0, head);
let cur = ret;
while(cur.next) {
if (cur.next.val === val) {
cur.next = cur.next.next;
continue;
}
cur = cur.next;
}
return ret.next;
}
CATALOG
  1. 1. 题目(easy):
  2. 2. 思路