【LeeCode】203.移除链表元素

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

示例 1:

复制代码
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:

复制代码
输入:head = [], val = 1
输出:[]

示例 3:

复制代码
输入:head = [7,7,7,7], val = 7
输出:[]

解:

java 复制代码
/**
 * Definition for singly-linked list.
 * public 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) {
        if (head == null) {
            return head;
        }
        // 因为删除可能涉及到头节点,所以设置dummy节点,统一操作
        ListNode dummy = new ListNode(-1, head);
        ListNode pre = dummy;
        ListNode cur = head;
        while (cur != null) {
            if (cur.val == val) {
                pre.next = cur.next;
            } else {
                pre = cur;
            }
            cur = cur.next;
        }
        return dummy.next;
    }
}
相关推荐
tang&12 分钟前
双指针算法:化繁为简的优雅解法
数据结构·c++·算法
Aaron158817 分钟前
RFSOC+VU13P在无线信道模拟中的技术应用分析
数据结构·人工智能·算法·fpga开发·硬件架构·硬件工程·射频工程
咸鱼加辣25 分钟前
“刻意强调” O(1)
数据结构·算法
LYFlied1 小时前
【每日算法】LeetCode 146. LRU 缓存机制
前端·数据结构·算法·leetcode·缓存
LYFlied1 小时前
【每日算法】LeetCode142. 环形链表 II
数据结构·算法·leetcode·链表
LYFlied1 小时前
【每日算法】LeetCode 23. 合并 K 个升序链表
前端·数据结构·算法·leetcode·链表
Fine姐1 小时前
数据结构05——平衡二叉树
数据结构
hweiyu002 小时前
数据结构:矩阵
数据结构·线性代数·矩阵
旺仔小拳头..2 小时前
数据结构(一)———线性表之顺序表、单向链表
数据结构·算法
xiaoxue..2 小时前
哨兵节点与快慢指针解决链表算法难题
前端·javascript·数据结构·算法·链表