[链表] - 代码随想录 203. 移除链表元素

[链表] - 代码随想录 203. 移除链表元素

题目描述:

删除链表中所有值为 val 的节点。

示例:

输入: 1 -> 2 -> 6 -> 3 -> 4 -> 5 -> 6, val = 6

输出: 1 -> 2 -> 3 -> 4 -> 5

题解思路:

为了方便处理头节点可能被删除的情况,我们通常会创建一个虚拟头节点(dummy node),然后从该节点开始遍历链表。在遍历过程中,如果当前节点的下一个节点的值等于目标值 val,则跳过该节点;否则,继续向后移动。

Java 实现:

java 复制代码
/**
 * 定义单链表节点
 */
class ListNode {
    int val;
    ListNode next;
    ListNode() {}
    ListNode(int val) { this.val = val; }
    ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}

class Solution {
    public ListNode removeElements(ListNode head, int val) {
        // 创建虚拟头节点
        ListNode dummy = new ListNode(0, head);
        ListNode cur = dummy;

        while (cur != null && cur.next != null) {
            if (cur.next.val == val) {
                // 如果下一个节点的值等于 val,则跳过该节点
                cur.next = cur.next.next;
            } else {
                // 否则,移动到下一个节点
                cur = cur.next;
            }
        }

        // 返回虚拟头节点的下一个节点,即为新的链表头
        return dummy.next;
    }
}
相关推荐
数智工坊5 小时前
【数据结构-树与二叉树】4.6 树与森林的存储-转化-遍历
数据结构
望舒5135 小时前
代码随想录day25,回溯算法part4
java·数据结构·算法·leetcode
独好紫罗兰5 小时前
对python的再认识-基于数据结构进行-a006-元组-拓展
开发语言·数据结构·python
铉铉这波能秀5 小时前
LeetCode Hot100数据结构背景知识之集合(Set)Python2026新版
数据结构·python·算法·leetcode·哈希算法
踢足球09295 小时前
寒假打卡:2026-2-8
数据结构·算法
老赵说6 小时前
Java基础数据结构全面解析与实战指南:从小白到高手的通关秘籍
数据结构
铉铉这波能秀6 小时前
LeetCode Hot100数据结构背景知识之元组(Tuple)Python2026新版
数据结构·python·算法·leetcode·元组·tuple
静听山水7 小时前
Redis核心数据结构-ZSet
数据结构·redis
铉铉这波能秀7 小时前
LeetCode Hot100数据结构背景知识之字典(Dictionary)Python2026新版
数据结构·python·算法·leetcode·字典·dictionary
Queenie_Charlie7 小时前
stars(树状数组)
数据结构·c++·树状数组