【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;
    }
}
相关推荐
北京地铁1号线23 分钟前
数据结构:堆
java·数据结构·算法
得物技术31 分钟前
从数字到版面:得物数据产品里数字格式化的那些事
前端·数据结构·数据分析
靠沿5 小时前
Java数据结构初阶——LinkedList
java·开发语言·数据结构
Elias不吃糖6 小时前
LeetCode每日一练(209, 167)
数据结构·c++·算法·leetcode
铁手飞鹰6 小时前
单链表(C语言,手撕)
数据结构·c++·算法·c·单链表
hweiyu006 小时前
数据结构:循环链表
数据结构·链表
野蛮人6号7 小时前
力扣热题100道前62道,内容和力扣官方稍有不同,记录了本人的一些独特的解法
数据结构·算法·leetcode
学困昇7 小时前
C++11中的lambda表达式详解
开发语言·数据结构·c++
代码王同学8 小时前
数据结构:栈
数据结构