LeetCode 203 - 移除链表元素
题目描述
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
解题思路
创建一个虚拟头节点dummyHead,并将其next指向给定的头节点head,这样可以避免处理头节点的特殊情况。使用指针cur来遍历链表,当cur的下一个节点不为空时,进行如下操作:
1.如果cur的下一个节点的值等于给定的数值val,则将其下一个节点(即要移除的节点)保存在临时指针tmp中,然后将cur的next指针指向下下个节点,同时删除tmp指向的节点,完成移除操作。
2.如果cur的下一个节点的值不等于给定的数值val,则将cur指针指向下一个节点,即保持链表的连续性。
3.最后,将head指向dummyHead的下一个节点,即新的头节点,然后删除dummyHead节点释放内存,最终返回新的头节点。
算法实现
C++实现
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
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;}}head=dummyHead->next;delete dummyHead;return head;}
};
复杂度分析
- 时间复杂度:O(n),其中n是链表的长度。需要遍历整个链表一次。
- 空间复杂度:O(1),只使用了常数级别的额外空间。
总结
=这种方法的时间复杂度和空间复杂度都很低,适用于处理大规模的链表数据。希望本篇博客能给大家提供一些帮助,也欢迎大家多多交流,共同进步!
以上就是对LeetCode203移除链表元素的解题思路、算法实现、复杂度分析和总结,希望对你有所帮助!
相关文章:
LeetCode 203 - 移除链表元素
题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 解题思路 创建一个虚拟头节点dummyHead,并将其next指向给定的头节点head,这样可以避免处理头节点的特…...
【海图界面上一些常见术语UTC、HDG、COG、SOG、LAT、LON的基本解释】
当然,以下是关于海图界面上一些常见术语UTC、HDG、COG、SOG、LAT、LON的基本解释: UTC (Coordinated Universal Time) 定义:UTC 是协调世界时(Coordinated Universal Time)的缩写,是一种与地球自转无关的…...
HL7协议简介及其在STM32上的解析实现
近期完成一个医疗相关的项目,其中包括了体征监测设备,该设备使用的通信协议便是HL7 V2.4 协议,在医疗信息化领域,HL7(Health Level Seven)协议扮演着至关重要的角色。它是一种国际标准,用于定义医疗机构间以及医疗设备与信息系统之间的数据交换格式和通信协议。HL7标准旨…...
TensorRT推理端到端
TensorRT推理端到端 1.参考链接2.宿主机上安装CUDA 12.4.13.安装nvidia-container-toolkit4.创建ghcr.io/intel/llvm/ubuntu2204_base容器5.容器内安装CUDA 12.4.1 + TensorRT10.1.06.安装依赖7.准备resnet50模型8.准备bert模型9.准备yolov5m模型10.编译TensorRT推理程序11.onn…...
获取历史的天气预报数据的网站
要获取从2019年到现在某个中国城市的天气数据,您可以通过以下方法实现: 1. 使用第三方天气数据API 许多天气服务提供商提供了历史天气数据的API接口,您可以通过这些API获取所需的数据。以下是一些常用的天气数据API提供商: 1.1…...
【VUE】Vue中常用的修饰符
事件修饰符 .stop:阻止事件冒泡。.prevent:阻止默认事件。.capture:使用事件捕获模式。.self:只当事件在该元素本身(比如不是子元素)触发时触发回调。.once:只触发一次事件。 按键修饰符 .en…...
数据分箱:如何确定分箱的最优数量?
选择最优分箱可以考虑以下几种方法: 一、基于业务理解 分析业务背景:从业务角度出发,某些特征可能有自然的分组或区间划分。例如,年龄可以根据不同的人生阶段进行分箱,收入可以根据常见的收入等级划分。 优点&#x…...
机器学习核心功能:分类、回归、聚类与降维
机器学习核心功能:分类、回归、聚类与降维 机器学习领域的基本功能类型通常按照学习模式、预测目标和算法适用性来分类。这些类型包括监督学习、无监督学习、半监督学习和强化学习,它们可以进一步细化为特定的任务,如分类、回归、聚类和降维…...
Python爬虫-eBay商品排名数据
前言 本文是该专栏的第39篇,后面会持续分享python爬虫干货知识,记得关注。 本文以eBay为例,通过搜索目标”关键词“,获取相关搜索”关键词“的商品排名数据。废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详…...
LabVIEW提高开发效率技巧----图像处理加速
在现代工业和科研中,图像处理技术被广泛应用于质量检测、自动化控制、机器人导航等领域。然而,随着图像数据量的增加,传统的CPU处理方式可能难以满足实时性和高效处理的需求。LabVIEW通过结合NI Vision模块和FPGA硬件平台,可以显著…...
AcWing1027
题目重述: 题目的核心是找到一条路径的最大权值总和,但路径要从起点 (1, 1) 走到终点 (n, n)。由于两条路径分别经过不同的格子,我们可以巧妙地将问题简化为两次同时出发的路径问题。这种映射的设计让我们能够更方便地处理两条路径重叠在同一…...
23 Shell Script服务脚本
Linux 服务脚本 一、Linux 开机自动启动服务 linux开机服务原理: ①linux系统启动首先加载kernel ②初始操作系统 ③login验证程序等待用户登陆 初始化操作系统 kernel加载/sbin/init创建用户空间的第一个程序 该程序完成操作系统的初…...
三周精通FastAPI:3 查询参数
查询参数 FastAPI官网手册:https://fastapi.tiangolo.com/zh/tutorial/query-params/ 上节内容:https://skywalk.blog.csdn.net/article/details/143046422 声明的参数不是路径参数时,路径操作函数会把该参数自动解释为**查询**参数。 from…...
大语言模型学习指南:入门、应用与深入
0x00 学习路径概述 本文将学习路径划分为三个部分:入门篇、应用篇、深入篇。每个章节针对不同的学习需求,帮助你从基础知识入手,逐步掌握大语言模型(LLM)的使用、应用开发以及技术原理等内容。 学习目标 入门篇&…...
【Linux-进程间通信】匿名管道+4种情况+5种特征
匿名管道 匿名管道(Anonymous Pipes)是Unix和类Unix操作系统中的一种通信机制,用于在两个进程之间传递数据。匿名管道通常用于命令行工具之间的数据传递; 匿名管道的工作原理是创建一个临时文件,该文件被称为管道文件…...
Perl打印9x9乘法口诀
本章教程主要介绍如何用Perl打印9x9乘法口诀。 一、程序代码 1、写法① use strict; # 启用严格模式,帮助捕捉变量声明等错误 use warnings; # 启用警告,帮助发现潜在问题# 遍历 1 到 9 的数字 for my $i (1..9) {# 对于每个 $i,遍历 1…...
Android--第一个android程序
写在前边 ※安卓开发工具常用模拟器汇总Android开发者必备工具-常见Android模拟器(MuMu、夜神、蓝叠、逍遥、雷电、Genymotion...)_安卓模拟器-CSDN博客 ※一般游戏模拟器运行速度相对较快,本文选择逍遥模拟器_以下是Android Studio连接模拟器实现(先从以上博文中…...
MySQL的并行复制原理
1. 并行复制的概念 并行复制(Parallel Replication)是一种通过同时处理多个复制任务来加速数据复制的技术。它与并发复制的区别在于,并行复制更多关注的是数据块或事务之间的并行执行,而不是单纯的任务并发。在数据库主从复制中&…...
2023年五一杯数学建模C题双碳目标下低碳建筑研究求解全过程论文及程序
2023年五一杯数学建模 C题 双碳目标下低碳建筑研究 原题再现: “双碳”即碳达峰与碳中和的简称,我国力争2030年前实现碳达峰,2060年前实现碳中和。“双碳”战略倡导绿色、环保、低碳的生活方式。我国加快降低碳排放步伐,大力推进…...
信息安全工程师(57)网络安全漏洞扫描技术与应用
一、网络安全漏洞扫描技术概述 网络安全漏洞扫描技术是一种可以自动检测计算机系统和网络设备中存在的漏洞和弱点的技术。它通过使用特定的方法和工具,模拟攻击者的攻击方式,从而检测存在的漏洞和弱点。这种技术可以帮助组织及时发现并修补漏洞ÿ…...
为什么峰值电流控制不适合Boost PFC
结论:因为峰值电流控制时THD很大。分析...
主构造函数在ASP.NET Core Minimal API中的秘密用法,5行代码实现自动验证绑定——却被官方文档刻意省略
第一章:主构造函数在Minimal API中的颠覆性登场在 .NET 8 中,Minimal API 的演进迎来关键转折点:主构造函数(Primary Constructor)正式成为定义端点处理器的首选语法范式。它将依赖注入、参数绑定与逻辑封装三者统一于…...
BetterGenshinImpact多开终极指南:同时管理多个原神账号的完整教程
BetterGenshinImpact多开终极指南:同时管理多个原神账号的完整教程 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | …...
Qwen3-ForcedAligner-0.6B效果展示:WAV/MP3混合输入下98.2%字级对齐准确率
Qwen3-ForcedAligner-0.6B效果展示:WAV/MP3混合输入下98.2%字级对齐准确率 1. 惊艳效果开场:语音识别的精准新标杆 想象一下这样的场景:一段包含中文、英文混合的会议录音,背景还有轻微的键盘敲击声。传统的语音识别工具可能只能…...
OpenClaw新手避坑:千问3.5-9B安装配置常见错误指南
OpenClaw新手避坑:千问3.5-9B安装配置常见错误指南 1. 为什么写这篇文章 上周我在本地部署OpenClaw对接千问3.5-9B模型时,连续踩了五个坑——从环境变量配置错误到模型地址拼写错误,甚至因为一个不起眼的端口冲突浪费了两小时。这种经历让我…...
从平面到立体:用Origin打造揭示乳液配方奥秘的3D三元曲面图
1. 为什么需要从平面走向立体? 在乳液配方研发过程中,我们常常需要同时调整三种成分的配比。传统的三元等高线图虽然能展示成分与性能的关系,但就像看一张纸质地图和用手机导航的区别——前者只能告诉你哪里有山,后者却能让你直观…...
半监督3D医学图像分割(四):URPC在鼻咽癌GTV分割中的高效应用
1. 为什么URPC在鼻咽癌GTV分割中表现突出 鼻咽癌肿瘤靶区(GTV)分割是放疗规划中的关键步骤,传统方法依赖医生手动勾画,耗时且易受主观影响。URPC(Uncertainty Rectified Pyramid Consistency)作为半监督3D医…...
如何突破抖音视频下载限制:douyin-downloader的全方位解决方案
如何突破抖音视频下载限制:douyin-downloader的全方位解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallba…...
Linux下进行用户的切换与创建以及细微设置
目录 为什么要创建普通用户 创建新用户 Step1:正确登入自己的云服务器 add指令添加普通用户 passwd设置登录密码 查看所有用户 ls/home cat/etc/passwd cat /etc/passwd |cut -d: -f 1-3 lastlog su -l切换用户 查看当前为何用户 删除用户 编辑 sud…...
你的SSH密钥可能已经过期了队
引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...
