203. 移除链表元素【链表】【C++】

题目描述

题目描述
给你一个链表的头节点 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
输出:[]
提示:
列表中的节点数目在范围 [0, 104] 内
1 <= Node.val <= 50
0 <= val <= 50

思路:

本题属于典型的链表删除题目,删除链表的核心代码为:

cur -> next = cur -> next -> next;

就是跳过下一个的节点,直接和下一个的下一个节点相连,但需要注意,C++需要手动释放内存。
为了方便处理第一个节点,可以设置一个虚拟头节点。

代码:

class Solution {
public:ListNode* removeElements(ListNode* head, int val) {ListNode* dummyHead = new ListNode(0);  //虚拟头节点,用于处理第一个节点dummyHead -> next = head;ListNode* cur = dummyHead;  //临时节点,用于遍历链表while (cur -> next != NULL) {  //终止条件if (cur -> next -> val == val) {   //删除节点ListNode* tmp = cur -> next; cur -> next = cur -> next -> next;delete tmp;          //手动释放内存}else {cur = cur -> next;   //遍历下一个节点}}ListNode* res = dummyHead -> next;delete dummyHead;return res;}
};

时间复杂度O(n):遍历一遍链表
空间复杂度O(1):只定义了常数个指针变量

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qiankun 结合 vue3, 小白快速上手体验

一、主应用改造 首先需要维护一份微应用列表&#xff0c;里面包含了微应用的名称、入口和生效规则&#xff0c;若需要给子应用传递内容&#xff0c;可以在 props 传入对应的内容 // app.js const apps [{name: micro-vue-app3,entry: //localhost:3013,container: #micro-vu…

再谈kettle两种循环之--调用http分页接口循环获取数据

再谈kettle两种循环之 – 调用http分页接口循环获取数据 1.场景介绍&#xff1a; 由于数据量比较大,接口有返回限制,需要用到循环分页获取数据 2.案例适用范围&#xff1a; 循环job可参考&#xff0c;变量运用可参考&#xff0c;调用http分页接口循环获取数据可参考&#…

SQLServer2022新特性 GENERATE_SERIES函数

SQLServer2022新特性 GENERATE_SERIES函数&#xff0c;在给定间隔内生成一系列数字。 序列值之间的间隔和步骤由用户定义。 参考官方地址 https://learn.microsoft.com/en-us/sql/t-sql/functions/generate-series-transact-sql?viewsql-server-ver16 1、本文内容 语法参数…

国产操作系统上多种压缩和解压命令详解 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上多种压缩和解压命令详解 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上多种压缩和解压命令详解的文章。压缩和解压缩是我们在日常工作中经常需要进行的操作&#xff0c;尤其是在处理大…

【AIGC】用 AI 绘画 诠释印象派!关键词、安装包分享!

前言 印象派艺术运动是19世纪60年代法国的一场艺术革命&#xff0c;它不仅革新了绘画技法&#xff0c;更重新诠释了光与色彩、自然与美。印象派艺术家&#xff0c;如莫奈、雷诺阿和德加&#xff0c;通过捕捉自然光线的瞬息变化&#xff0c;用色彩和笔触表达对现实世界的独特感…

Theta方法:一种时间序列分解与预测的简化方法

Theta方法整合了两个基本概念:分解时间序列和利用基本预测技术来估计未来的价值。 每个数据科学爱好者都知道&#xff0c;时间序列是按一定时间间隔收集或记录的一系列数据点。例如&#xff0c;每日温度或经济指标的月值。把时间序列想象成不同成分的组合&#xff0c;趋势(数据…

【linux/shell】shell中使用for循环读取数据

目录 一.for循环从列表中读取数据的几种形式 二.for循环从配置文件读取数据 三.for循环用通配符读取目录 四.for循环带有数字变量 一.for循环从列表中读取数据的几种形式 #!/bin/bash listl"aa bb cc" list2aa bb ccfor i in $list3 doecho $i done 使用这种形…

取证工作:怎样解锁 LUKS2 加密磁盘?

对于 LUKS2 密码进行恢复&#xff0c;Elcomsoft Distributed Password Recovery &#xff08;简称 EDPR&#xff09; 软件可以构建高性能集群&#xff0c;以更快地破解密码。EDPR 软件提供零开销的可扩展性&#xff0c;并支持 GPU 加速&#xff0c;以加快恢复速度。EDPR 可帮助…

Redis-实战篇-编码解决商铺查询的缓存穿透问题(缓存空对象)

文章目录 1、缓存穿透2、常见的解决方案有两种&#xff1a;2.1、缓存空对象2.2、布隆过滤器 3、编码解决商铺查询的缓存穿透问题3.1、queryById3.2、RedisConstants.java 1、缓存穿透 缓存击穿是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效…

Spring Boot中使用Feign进行HTTP请求

Spring Boot中使用Feign进行HTTP请求 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨一下如何在Spring Boot中使用Feign进行HTTP请求。 一、Fei…

【b站-湖科大教书匠】3 数据链路层-计算机网络微课堂

课程地址&#xff1a;【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 3 数据链路层 3.1 数据链路层概述 3.1.1 数据链路层在网络体系结…

2024华为数通HCIP-datacom最新题库(变题更新⑤)

请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了&#xff0c;如果你准备去考试&#xff0c;还是用的之前的题库&#xff0c;切记暂缓。 1、…

Python的with语句与上下文管理器:深入解析与实战应用

Python的with语句与上下文管理器&#xff1a;深入解析与实战应用 在Python编程中&#xff0c;with语句是一个强大的特性&#xff0c;它提供了一种简洁的方式来管理资源&#xff0c;如文件、网络连接等。通过使用with语句&#xff0c;我们可以确保在代码块执行完毕后&#xff0…

Python中的enumerate函数:索引与值的完美搭档

Python中的enumerate函数&#xff1a;索引与值的完美搭档 在Python编程中&#xff0c;遍历列表、元组或其他可迭代对象时&#xff0c;我们经常会需要同时访问每个元素的索引和值。这时&#xff0c;enumerate()函数就显得尤为重要&#xff0c;它为我们提供了一个简洁而高效的方…

【项目管理体系】代码评审规范

1完整性检查 2一致性检查 3正确性检查 4可预测性检查 5健壮性检查 6结构性检查 7可追溯性检查 8可理解性检查 9可验证性检查 软件开发全套资料获取&#xff1a;&#xff08;本文末个人名片直接获取&#xff09; 软件产品&#xff0c;特别是行业解决方案软件产品不同于一般的商品…

JavaScript中常用数据类型做布尔值(Boolean)转换

一、前言 二、示例 1、String转Boolean 2、Number转Boolean 3、NaN、Null、undefined 转Boolean 4、Object转Boolean 5、Array转Boolean 6、Symbol转Boolean 三、总结 四、思考 一、前言 JavaScript中&#xff0c;经常需要对一些值进行boolean判断&#xff0c;根据判…

DDoS攻击的最新防御策略:从检测到缓解的全方位方案

在数字化浪潮的推动下&#xff0c;互联网已成为现代社会的血脉。然而&#xff0c;随着网络空间的不断膨胀&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击如同潜伏在暗处的猛兽&#xff0c;随时准备发动致命一击&#xff0c;威胁着网络的稳定与安全。面对这一严峻…

前端-echarts tooltip展示多项自定义数据

效果如图&#xff0c;鼠标滑动到某一个柱子的时候&#xff0c;出现这一项数据的多个自定义数据&#xff0c;外加自己的模板样式渲染。 希望能展示每一列中的多个自定义数据 代码部分 主要是在data中&#xff0c;value就是实际展示的主数据&#xff0c;其他字段名为自定义的数…

【面试系列】Swift 高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

ArUco 相关(opencv)

主要的问题还是随着opencv的版本升级&#xff0c;对aruco模块的函数命名变化挺大的&#xff0c;因此需要正确调用opencv对应版本下的aruco相关函数&#xff0c;不然程序无法运行&#xff0c;会报各种异常 在线ArUco工具 https://chev.me/arucogen/ 保存下来的是svg格式 环境 …