【Java 数据结构】移除链表元素

🔥 博客主页🔥 :【 坊钰_CSDN博客

欢迎各位点赞👍 评论**✍收藏⭐**

目录

[1. 题目](#1. 题目)

[2. 解析](#2. 解析)

[3. 代码实现](#3. 代码实现)

[4. 小结](#4. 小结)


题目出处:203. 移除链表元素 - 力扣(LeetCode)

1. 题目

给你一个链表的头节点 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
输出:[]

2. 解析

  • 先创建一个前头部节点,用来存放头节点,便于后续遍历和删除
  • 用 dehead != null 的条件来依次遍历链表,遇到要删除的值,进行删除操作
  • 最后返回头部节点,也就是 dehead.next 即可

3. 代码实现

java 复制代码
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode dehead = new ListNode(0);
        dehead.next = head;
        ListNode ret = dehead;
        while (ret.next != null) {
            if (ret.next.val == val) {
                ret.next = ret.next.next;
            } else {
                ret = ret.next;
            }
        }
        return dehead.next;
    }
}

4. 小结

以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持

相关推荐
独处东汉2 分钟前
freertos开发空气检测仪之输入子系统结构体设计
数据结构·人工智能·stm32·单片机·嵌入式硬件·算法
m0_748229993 分钟前
ThinkPHP快速入门:从零到实战
c语言·开发语言·数据库·学习
liu****4 分钟前
三.Qt图形界面开发完全指南:从入门到掌握常用控件
开发语言·c++·qt
風清掦8 分钟前
【江科大STM32学习笔记-04】0.96寸OLED显示屏
笔记·stm32·学习
放荡不羁的野指针9 分钟前
leetcode150题-滑动窗口
数据结构·算法·leetcode
阿蒙Amon13 分钟前
C#每日面试题-Thread.Sleep和Task.Delay的区别
java·数据库·c#
胡西风_foxww13 分钟前
ObsidianAI_学习一个陌生知识领域_建立学习路径和知识库框架_写一本书
人工智能·笔记·学习·知识库·obsidian·notebooklm·写一本书
Haooog14 分钟前
AI应用代码生成平台
java·学习·大模型·langchain4j
非凡ghost15 分钟前
ShareX(免费截图录屏软件)
windows·学习·软件需求
布茹 ei ai17 分钟前
Python屏幕监视器 - 自动检测屏幕变化并点击
开发语言·python