203. 移除链表元素

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、思路分析

能够想到最直接的方式:就是遍历所有的节点,判断节点的 val 值是否相等,相等则删除,反之继续遍历。

有几个注意点

1、这道题目中的头结点是存储数据的,并且是可以删除的。因此在处理时,要么使用虚拟节点不用额外处理头结点,要么就额外处理头结点。

2、在判断节点的 val 值是否相等时,判断的是 当前节点的下一节点的 val 。如果判断的是当前节点的话,我们是无法删除的。

        public ListNode removeElements(ListNode head, int val) {
            // 增加虚拟节点
            ListNode d = new ListNode();
            d.next = head;
            // 用于指向当前节点
            ListNode temp = d;

            // 遍历节点
            while(temp.next != null) {
                if (temp.next.val == val) {
                    // 始终要判断下一节点的 val
                    // 删除:将当前节点的next 指向下一节点的 next
                    temp.next = temp.next.next;
                }else{
                    // 移动到下一个节点
                    temp = temp.next;
                }
            }
            // 返回头结点。
            return  d.next;
        }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/7862.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

File 类的用法和 InputStream, OutputStream,System 类的用法

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

Typescript学习笔记(一)

什么是TypeScript? TypeScript 是添加了类型系统的 JavaScript,适用于任何规模的项目。 TypeScript 是一门静态类型、弱类型的语言。 安装TypeScript npm install -g typescript编译 tsc hello.tsTypeScript 只会在编译时对类型进行静态检查,如果发…

iOS 内存管理机制与原理

内存分区 内存一般分为五大区:栈区、堆区、常量区、全局区、代码区。如图 1.栈区 是由编译器自动分配并释放的,主要用来存储局部变量、函数的参数等,是一块连续的内存区域,遵循先进后出(FILO)原则。一般在…

WebAssembly 助力云原生:APISIX 如何借助 Wasm 插件实现扩展功能?

本文将介绍 Wasm,以及 Apache APISIX 如何实现 Wasm 功能。 作者朱欣欣,API7.ai 技术工程师 原文链接 什么是 Wasm Wasm 是 WebAssembly 的缩写。WebAssembly/Wasm 是一个基于堆栈的虚拟机设计的指令格式。 在 Wasm 未出现之前,浏览器中只能…

Hadoop(伪分布式)+Spark(local模式)搭建Hadoop和Spark组合环境

一、安装Hadoop环境使用Ubuntu 14.04 64位 作为系统环境(Ubuntu 12.04,Ubuntu16.04 也行,32位、64位均可),请自行安装系统。Hadoop版本: Hadoop 2.7.4创建hadoop用户如果你安装 Ubuntu 的时候不是用的 "hadoop&qu…

研究的艺术 (The craft of research) 读书笔记

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 对于研究者而言,写作是一件很重要的事,好的写作不仅能让更多人愿意读,获得更大影响力&…

Windows系统配置SSH服务

1.安装OpenSSH 打开【设置】-【应用】 选择【管理可选功能】 点击【添加可选功能】 选择【OpenSSH 服务端】,切记不是【OpenSSH 客户端】(如果安装一个不行,就都安装,我都安装了可以用),然后点击下载即可 …

ERP系统如何让项目管理更轻松?

项目管理是许多企业的首要任务,通常有一个ERP系统来协助他们。然而,一些企业仍然没有意识到,ERP解决方案可以使他们的项目管理更容易。项目管理需要有一个目标,并在你朝着完成项目前进的过程中控制变量,而ERP系统指导你…

成都北大青鸟怎么样?

对于任何一个培训机构的了解大概的流程是:听说名字——网上搜索,可以看到机构官网,也会看到机构广告,当然也会看到各种有好有坏的评论,到这里会对机构形成初印象;然后如果身边有培训出身的小伙伴会去询问对…

【C语言进阶:自定义类型详解】联合(共用体)

本节重点内容: 联合类型的定义联合的特点联合大小的计算⚡联合类型的定义 联合也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。 为了方便大家理解举个例子…

Java 网络编程之NIO(ByteBuffer)

在 Java NIO 中,ByteBuffer 是用于存储和传输数据的一种数据结构。它提供了高效的数据存储和读取能力,使得 Java NIO 能够高效地处理大量的数据输入输出。 ByteBuffer 的作用包括以下几个方面: 存储数据:ByteBuffer 可以存储任意长度的数据,…

Elasticsearch 8.X 如何基于用户指定 ID 顺序召回数据?

1、实战问题如何根据输入的id 的顺序输出结果,id 个数有500个,还有分页?问题来源:https://t.zsxq.com/0cdyq7tzr2、方案探讨2.1 Elasticsearch 默认排序机制在 Elasticsearch 中,如果未指定排序规则,检索结…

Linux下实现的 HTTP 服务器

项目功能:(1)能接收客户端的GET请求;(2)能够解析客户端的请求报文,根据客户端要求找到相应的资源;(2)能够回复http应答报文;(3&#x…

数据结构和算法学习记录——设计循环队列(数组实现循环队列)核心思路、题解过程、完整题解

目录 题目描述 题目示例 核心思路 链表实现 数组实现 重点 题解过程 结构体类型定义 创建一个循环队列并初始化 判断循环队列为空或为满 入队列函数 出队列函数 取队头数据 取队尾数据 销毁循环队列 完整题解 题目来源:力扣 题目描述 设计你的…

Sentinel滑动时间窗限流算法原理及源码解析(下)

文章目录对统计数据如何使用获取之前统计好的数据对统计数据如何使用 流控快速失败 获取之前统计好的数据

SpringBoot 项目的创建与启动

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

iosApplePay

1、Apple Pay 接入工程 - 简书 // 设置币种、国家码及merchant标识符等基本信息 PKPaymentRequest *payRequest [[PKPaymentRequest alloc]init]; payRequest.countryCode "CN"; //国家代码 payRequest.currencyCode "CNY"; //RMB的币种代码 …

“被裁员之前,没得到任何风声,措手不及...” 一个在职6年测试工程师内心独白

前言 一个码农(软件测试工程师)的自白 小张: 我们用工作五年的积蓄,在这个一线城市买了房子,买了车子,然后领证。我也在6年前进入了一个很多人梦寐以求新的公司 码农的新生活开始了。在这家公司里&…

ChatGPT如何为企业提供帮助?

数字化转型是指利用技术来改变企业的运营方式并为客户提供价值,这不仅仅是关于如何采用新的技术或工具。要想取得成功,就需要从根本上改变文化和心态。 ChatGPT如何为企业提供帮助?从数据分析到知识管理再到客户服务等等,人工智能聊天机器人…

光伏发电系统模拟及其发电预测开源python工具pvlib

1. 太阳辐照量模拟 pysolar是一个用于计算太阳位置和辐照量的Python库。它是基于python语言编写的,可以方便地在各种python项目中使用。pysolar主要用于计算太阳的位置、太阳高度角、太阳方位角、日出和日落时间等信息。这些信息可以用于太阳能电池板和太阳能集热器…