# 203 移除链表元素
# 题目
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5##
# 题解
- 创建一个临时节点,并把临时节点作为头结点,这样方便迭代遍历。遍历找到节点时,用上一个节点的 next 指向当前节点的 next 即可。
TIP
执行用时:96 ms, 在所有 JavaScript 提交中击败了 90.92% 的用户
内存消耗:42.4 MB, 在所有 JavaScript 提交中击败了 9.02% 的用户
内存消耗:42.4 MB, 在所有 JavaScript 提交中击败了 9.02% 的用户
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var removeElements = function(head, val) {
let sentinel = new ListNode('', head)
let previous = sentinel
if(!previous) return head
while(previous.next != null) {
let current = previous.next
if(current.val == val) {
previous.next = current.next
} else {
previous = current
}
}
return sentinel.next
};
- 时间复杂度: `O(n)`,一个 while循环
- 空间复杂度: `O(1)`,几个常量
- 最好情况:
- 最坏情况:
← 189 旋转数组 217 存在重复元素 →