LeetCode 分类刷题:203. 移除链表元素

题目

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

解析

作者:灵茶山艾府

链接:https://leetcode.cn/problems/remove-linked-list-elements/solutions/2806456/tao-lu-ru-he-you-ya-di-shan-chu-lian-bia-ah8z/

来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

答案

javascript 复制代码
var removeElements = function(head, val) {
    const dummy = new ListNode(0, head);
    let cur = dummy;
    while (cur.next) {
        if (cur.next.val === val) {
            cur.next = cur.next.next; // 删除下一个节点
        } else {
            cur = cur.next; // 继续向后遍历链表
        }
    }
    return dummy.next;
};

// 作者:灵茶山艾府
// 链接:https://leetcode.cn/problems/remove-linked-list-elements/solutions/2806456/tao-lu-ru-he-you-ya-di-shan-chu-lian-bia-ah8z/
// 来源:力扣(LeetCode)
// 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

复杂度分析

时间复杂度:O(n),其中 n 是链表的长度。

空间复杂度:O(1)。

相关推荐
灵感__idea14 小时前
Hello 算法:贪心的世界
前端·javascript·算法
澈20715 小时前
深入浅出C++滑动窗口算法:原理、实现与实战应用详解
数据结构·c++·算法
ambition2024216 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先
cmpxr_16 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
qiqsevenqiqiqiqi16 小时前
前缀和差分
算法·图论
代码旅人ing16 小时前
链表算法刷题指南
数据结构·算法·链表
Yungoal16 小时前
常见 时间复杂度计算
c++·算法
6Hzlia16 小时前
【Hot 100 刷题计划】 LeetCode 48. 旋转图像 | C++ 矩阵变换题解
c++·leetcode·矩阵
不爱吃炸鸡柳17 小时前
单链表专题(完整代码版)
数据结构·算法·链表
CylMK17 小时前
题解:AT_abc382_d [ABC382D] Keep Distance
算法