当前位置: 首页 > news >正文

剑指 Offer 18. 删除链表的节点


🚀 作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。
🚁 个人主页:不 良
🔥 系列专栏:🛸剑指 Offer  
📕 学习格言:博观而约取,厚积而薄发
🌹 欢迎进来的小伙伴,如果小伙伴们在学习的过程中,发现有需要纠正的地方,烦请指正,希望能够与诸君一同成长! 🌹


剑指 Offer 18. 删除链表的节点

题目:

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

返回删除后的链表的头节点。

示例1:

输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

示例2:

输入: head = [4,5,1,9], val = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

说明:

  • 题目保证链表中节点的值互不相同

  • 若使用 C 或 C++ 语言,你不需要 freedelete 被删除的节点

思路一:

双指针法。因为题目中保证链表中节点的值互不相同,所以我们可以通过比较链表中节点值是否和val相等来删除节点。

链表头节点为空的情况就不再细说,直接返回nullptr

情况1.先判断头节点是否等于val,如果等于val直接返回头节点的下一个节点即返回head->next

image-20230528184348754

情况2.如果头节点不等于val,则设置两个节点prevcur分别记录上一个节点和当前节点,如果cur节点的值等于val,则让prev节点的next指针指向cur节点的下一个节点即prev->next = cur -> next

image-20230528184400511

情况3.如果cur节点的值不等于val,则通过prev = cur;cur = cur->next;继续向后遍历链表直至当cur为空。

image-20230528184409446

代码如下:

class Solution {
public:ListNode* deleteNode(ListNode* head, int val) {//判断头节点是否为空,此步可以省略,并不影响提交if(head == nullptr)return nullptr;//当head->val等于val时,返回head节点的下一个节点if(head->val == val){head = head->next;return head;}ListNode* cur = head;//当前节点ListNode* prev = head; //上一个节点while(cur){//当节点值等于val时,让prev节点的next指针指向cur节点的下一个节点if(cur->val == val){prev->next = cur->next;//这里用break或者return head;都可以//return head;break;}//如果不相等,则继续向后遍历prev = cur;cur = cur->next;}return head;}
};

时间复杂度:O(N)
空间复杂度:O(1)

相关文章:

剑指 Offer 18. 删除链表的节点

🚀 作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。 🚁 个人主页:不 良 🔥 系列专栏:🛸剑指 Offer 📕 学习格言:博观而约取,厚积而薄…...

WiFi 6 vs WiFi 5

在现代无线通信领域,WiFi已经成为人们日常生活中不可或缺的一部分。随着技术的不断发展,WiFi标准也在不断更新和演进。WiFi 6(802.11ax)和WiFi 5(802.11ac)是当前两个主要的WiFi标准。 本文将详细介绍WiFi …...

PHP语言基础

一.标记风格 标记风格分为四类(推荐XML) 1.XML风格 <?php echo这是xml风格‘&#xff1b; ?> 注意&#xff1a;结束标识符必须单独另起一行&#xff0c;并且不能有空格。在标识符前后有其他符号或者字符也会发生错误。 2.脚本风格 <script languagephp> …...

怎么用Excel VBA写一个excel批量合并的程序?

您可以按照以下VBA代码来实现把同一路径上的所有工作簿合并到同一个工作簿中&#xff1a; VBA Option Explicit Sub MergeWorkbooks() Dim path As String, fileName As String, sheet As Worksheet Dim targetWorkbook As Workbook, sourceWorkbook As Workbook Dim workshe…...

WuThreat身份安全云-TVD每日漏洞情报-2023-05-22

漏洞名称:Apple WebKit 任意代码执行漏洞 漏洞级别:中危 漏洞编号:CVE-2023-32373 相关涉及:Apple iOS和iPadOS 16.4.1 漏洞状态:在野 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-12579 漏洞名称:海康威视部分iVMS系统存在文件上传漏洞 漏洞级别:未定义…...

Eclipse教程 Ⅵ

今天分享Eclipse Java 构建路径、Eclipse 运行配置(Run Configuration)和Eclipse 运行程序 Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类&#xff0c;包括以下几项&#xff1a; 源码包项目相关的 jar 包及类文件项目引用的的类…...

Seaborn.load_dataset()加载数据集失败最佳解决方法

load_dataset() 是 Seaborn 库中提供的一个函数&#xff0c;用于加载一些原始数据集。这些数据集包含了许多经典的数据集&#xff0c;比如鸢尾花数据集、小费数据集等&#xff0c;这些数据集在数据可视化和机器学习中非常常见。 使用 load_dataset() 函数可以方便地获取这些数…...

java 区分缺陷Defects/感染Infections/失败Failure

java 区分缺陷Defects/感染Infections/失败Failure 缺陷Defects 软件故障总是从代码中一个或多个缺陷的执行开始。 缺陷只是一段有缺陷、不正确的代码。 缺陷可能是程序语句的一部分或完整部分&#xff0c;也可能对应于不存在但应该存在的语句。 尽管程序员要对代码中的缺陷负…...

如何学习R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合?

专题一&#xff1a;Meta分析的选题与文献计量分析CiteSpace应用 1、Meta分析的选题与文献检索 1) 什么是Meta分析 2) Meta分析的选题策略 3) 文献检索数据库 4) 精确检索策略&#xff0c;如何检索全、检索准 5) 文献的管理与清洗&#xff0c;如何制定文献纳入排除标准 6…...

分布式锁的应用场景与分布式锁实现(二):基于Redis实现分布式锁

分布式锁的应用场景与分布式锁实现&#xff08;一&#xff09;&#xff1a;传统锁处理并发及传统锁的问题 基于Redis实现分布式锁 所有代码已同步到GitCode&#xff1a;https://gitcode.net/ruozhuliufeng/distributed-project.git 基本实现 ​ 借助Redis中的命令setnx(key&a…...

【JavaSE】Java基础语法(四十二):NIO

文章目录 1. 概述2. NIO与BIO的区别3. NIO三大模块4. NIO创建缓冲区对象【应用】5. NIO缓冲区添加数据【应用】6. NIO缓冲区获取数据【应用】7. 小结 1. 概述 BIO Blocking IO,阻塞型IONIO No Blocking IO,非阻塞型IO阻塞IO的弊端 在等待的过程中,什么事也做不了非阻塞IO的好处…...

Linux---systemctl

1. systemctl命令 Linux系统很多软件&#xff08;内置或第三方&#xff09;均支持使用systemctl命令控制&#xff1a;启动、停止、开机自启。 能够被systemctl管理的软件&#xff0c;一般也称之为&#xff1a;服务 语法&#xff1a;systemctl start | stop | status | enabl…...

零钱兑换,凑零钱问题,从暴力递归到动态规划(java)

凑零钱问题&#xff0c;从暴力递归到动态规划 leetcode 322 题 零钱兑换暴力递归&#xff08;这个会超时&#xff0c;leetcode 跑不过去&#xff09;递归缓存动态规划优化暴力递归动态规划专题 leetcode 322 题 零钱兑换 322 零钱兑换 - 可以打开链接测试 给你一个整数数组 c…...

Vue登录界面精美模板分享

文章目录 &#x1f412;个人主页&#x1f3c5;Vue项目常用组件模板仓库&#x1f4d6;前言&#xff1a;&#x1f380;源码如下&#xff1a; &#x1f412;个人主页 &#x1f3c5;Vue项目常用组件模板仓库 &#x1f4d6;前言&#xff1a; 本篇博客主要提供vue组件之登陆组件源码…...

Linux设备驱动程序(二)——建立和运行模块

文章目录 前言一、设置测试系统二、Hello World 模块1、代码详解2、执行效果 三、内核模块相比于应用程序1、用户空间和内核空间2、内核的并发3、当前进程4、几个别的细节 四、编译和加载1、编译模块2、加载和卸载模块3、版本依赖 五、内核符号表六、预备知识七、初始化和关停1…...

【算法】单调栈问题

文章目录 题目思路分析代码实现 题目 给定一个不含有重复值的数组arr&#xff0c;找到每一个i位置左边和右边离i位置最近且值比arr[i]小的位置&#xff0c;返回所有位置相应的消息。 比如arr{3&#xff0c;4&#xff0c;1&#xff0c;5&#xff0c;6&#xff0c;2&#xff0c;…...

Hack The Box - 关卡Dancing

SMB(全称是Server Message Block)是一个协议名&#xff0c;可用于在计算机间共享文件、打印机、串口等&#xff0c;电脑上的网上邻居就是靠它实现的。 SMB 是一种客户机/服务器、请求/响应协议。通过 SMB 协议&#xff0c;客户端应用程序可以在各种网络环境下读、写服务器上的…...

【软件设计与体系结构】 软件体系结构风格

软件体系结构&#xff08;Software Architecture&#xff09; 软件体系结构&#xff08;Software Architecture&#xff09;包括构成系统的设计元素的描述、 设计元素 之间的交互、 设计元素的组合模式以及在这些模式中的约束。 定义 软件体系结构表示系统的框架结构&#xf…...

detectron2 使用教程

本范例演示使用非常有名的目标检测框架detectron2 🤗🤗 在自己的数据集(balloon数据)上训练实例分割模型MaskRCNN的方法。 detectron2框架的设计有以下一些优点: 1,强大:提供了包括目标检测、实例分割、全景分割等非常广泛的视觉任务模型库。 2,灵活:可以通过注册机…...

哈希表常用数据结构

哈希表常用数据结构 查询一个元素是否出现过&#xff0c;或者一个元素是否在集合里的时候&#xff0c;就要第一时间想到哈希法。 哈希法也是空间换时间&#xff0c;因为我们要使用额外的数组&#xff0c;set或者是map来存放数据&#xff0c;才能实现快速的查找。 集合底层实现…...

大麦网自动购票工具:技术原理与多场景应用指南

大麦网自动购票工具&#xff1a;技术原理与多场景应用指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 在数字化票务时代&#xff0c;热门演出门票往往在开票瞬间售罄&…...

窗口效率革命:WindowResizer重构数字空间管理新范式

窗口效率革命&#xff1a;WindowResizer重构数字空间管理新范式 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 问题诊断&#xff1a;被忽视的数字空间效率黑洞 现代办公的隐形枷…...

Polars 2.0大规模清洗崩溃全解析:内存溢出、Schema冲突、LazyFrame中断——3类高频致命报错的5分钟修复方案

第一章&#xff1a;Polars 2.0大规模清洗崩溃全解析&#xff1a;内存溢出、Schema冲突、LazyFrame中断——3类高频致命报错的5分钟修复方案 当处理TB级结构化数据时&#xff0c;Polars 2.0的LazyFrame虽带来性能飞跃&#xff0c;却也因底层执行引擎变更放大了三类典型崩溃风险。…...

WarcraftHelper:让经典魔兽争霸III在现代电脑上焕发新生的全能助手

WarcraftHelper&#xff1a;让经典魔兽争霸III在现代电脑上焕发新生的全能助手 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在宽…...

鸿蒙 ArkTS 高级样式复用:@Extend 装饰器完全解析(比 @Styles 更强大)

&#x1f525;前言&#xff1a;在上一篇文章《鸿蒙 ArkTS 样式复用&#xff1a;Styles 装饰器从入门到实战》中&#xff0c;我们学习了使用 Styles 实现基础样式复用。 但 Styles 不支持传参、不能使用组件专有属性&#xff0c;在复杂 UI 场景下能力有限。 &#x1f4cc; 本文…...

Lychee-rerank-mm在音乐推荐中的创新应用

Lychee-rerank-mm在音乐推荐中的创新应用 1. 引言 你有没有遇到过这样的情况&#xff1a;在音乐平台上听到一首很喜欢的歌&#xff0c;想找类似的音乐&#xff0c;但系统推荐的歌曲却总是差强人意&#xff1f;要么封面风格完全不搭&#xff0c;要么歌词主题南辕北辙&#xff…...

Qwen3.5-9B-AWQ-4bitWeb界面使用教程:上传/提问/防重复提交/结果解析全流程

Qwen3.5-9B-AWQ-4bit Web界面使用教程&#xff1a;上传/提问/防重复提交/结果解析全流程 1. 认识Qwen3.5-9B-AWQ-4bit模型 Qwen3.5-9B-AWQ-4bit是一个强大的多模态AI模型&#xff0c;它能够同时理解图片和文字。想象一下&#xff0c;你有一个既会看图片又会回答问题的智能助手…...

HDSceneColor节点]原理解析与实际应用

渲染管线兼容性详解HD Scene Color节点的可用性完全取决于所使用的渲染管线&#xff0c;这是开发者在选择和使用该节点时必须首先考虑的因素。高清渲染管线&#xff08;HDRP&#xff09;支持HDRP是Unity针对高端平台和高端硬件设计的高保真渲染解决方案HD Scene Color节点专为H…...

PHP+MySQL图书管理系统实战:从环境搭建到功能实现的保姆级教程(附完整源码)

PHPMySQL图书管理系统实战&#xff1a;从零构建企业级应用 1. 环境配置与项目初始化 在开始构建图书管理系统之前&#xff0c;我们需要搭建一个稳定的开发环境。不同于传统的独立安装方式&#xff0c;我将推荐使用Docker容器化方案&#xff0c;这能确保开发环境的一致性并避免&…...

4个核心功能实现智能散热:FanControl个性化温控指南

4个核心功能实现智能散热&#xff1a;FanControl个性化温控指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…...