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

【LeetCode75】第二十九题 删除链表的中间节点

目录

题目:

示例;

分析:

代码:


题目:

示例;

分析:

给我们一个链表,让我们把链表中间的节点删了。

那么最直观最基础的办法是遍历两边链表,第一遍拿到链表长度,第二次把链表中间节点删了。

这个暴力做法我没事过,不过貌似是可以解决问题的,所以我觉得这题的难度不能算是中等。

那除了这个暴力解法,有没有其他办法解决问题呢,其实是有的。

我们之前每日一题有做过类似的链表题,是检测一个链表是否是环形链表。

【力扣每日一题】2023.7.29 环形链表_折途的博客-CSDN博客其实这是很经典的快慢指针题。我们需要定义两个指针来遍历这个链表,其中一个快指针比慢指针每次多走一次,如果快指针走到了链表末尾,那么就没有环。如果链表有环,那么因为快指针移动比慢指针多,因此他们最终会相遇,快慢指针相遇则表示链表有环。题目给我们一个链表,让我们判断这个链表是否有环。我们可以直接遍历这个链表,最后能走到链表末尾也就是空指针那就代表这个链表没有环,如果一直死循环在走,那么就说明我们陷入环了。当然,我们不可能这么做,不可能每次判断一个链表有概率让我们的程序陷入死循环,那么我们应该怎么做呢。https://blog.csdn.net/m0_63235356/article/details/131991214?spm=1001.2014.3001.5502然后我们用的方法是快慢指针,我们知道,快指针走的路是慢指针的两倍,因此如果快指针走到了链表末尾,那么慢指针所在的位置就是链表的正中间。

然后我们再将当前慢指针所指的节点删除即可。为了实现删除节点的效果,我们让慢指针的上一个节点的后驱指向慢指针的下一个节点,直接跳过慢指针就达到了删除指针的效果。

所以我们还要额外定义一个指针,用于记录慢指针的上一个节点。

代码:

class Solution {
public:ListNode* deleteMiddle(ListNode* head) {//定义快慢指针,快指针每次走两格,慢指针一次走一格ListNode* fast=head;ListNode* cur=head;ListNode* pre=nullptr;  //定义一个前驱节点,用于删除中间节点if(fast->next==nullptr) return pre;//快指针走到尽头则表示当前的慢指针在中间节点位置,开始删除while(fast!=nullptr &&fast->next!=nullptr){ fast=fast->next->next;pre=cur;cur=cur->next;}pre->next=cur->next;    //跳过前驱节点的下一个节点达到删除节点的效果.return head;      }
};

相关文章:

【LeetCode75】第二十九题 删除链表的中间节点

目录 题目: 示例; 分析: 代码: 题目: 示例; 分析: 给我们一个链表,让我们把链表中间的节点删了。 那么最直观最基础的办法是遍历两边链表,第一遍拿到链表长度,第二次把链表中间节点删了。 这个暴力做法我没事过…...

Floyd(多源汇最短路)

Floyd求最短路 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。 再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出 impo…...

Pycharm找不到Conda可执行文件路径(Pycharm无法导入Anaconda已有环境)

在使用Pycharm时发现无法导入Anaconda创建好的环境,会出现找不到Conda可执行文件路径的问题。 解决 在输入框内输入D:\anaconda3\Scripts\conda.exe,点击加载环境。 注意前面目录是自己Anaconda的安装位置,之后就可以找到Anaconda的现有环…...

国产之光:讯飞星火最新大模型V2.0

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…...

通讯录实现【C语言】

目录 前言 一、整体逻辑分析 二、实现步骤 1、创建菜单和多次操作问题 2、创建通讯录 3、初始化通讯录 4、添加联系人 5、显示联系人 6、删除指定联系人 ​7、查找指定联系人 8、修改联系人信息 9、排序联系人信息 三、全部源码 前言 我们上期已经详细的介绍了自定…...

pcl欧式聚类

欧式聚类实现方法大致是: 1、找到空间中某点 p 1 p_1 p1​,用KD-Tree找到离他最近的n个点,判断这n个点到 p 1 p_1 p1​的距离。将距离小于阈值r的点 p 2 、 p 3 、 p 4 p_2、p_3、p_4 p2​、p3​、p4​…放在类Q里 2、在 Q ( p 1 ) Q(p_1…...

macOS Ventura 13.5.1(22G90)发布(附黑/白苹果系统镜像地址)

系统镜像下载:百度:黑果魏叔 系统介绍 黑果魏叔 8 月 18 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5.1 更新(内部版本号:22G90),本次更新距离上次发布隔了 24 天。 本次更新重点修复了…...

分布式监控平台——Zabbix

市场上常用的监控软件: 传统运维:zabbix、 Nagios 一、zabbix概述 作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。 利用一个优秀的监…...

【OpenGauss源码学习 —— 列存储(创建表)】

列存储 什么是列存储?语法实现语法格式参数说明示例源码分析(创建表)语法层(Gram.y)子模块(utility.cpp) 总结 声明:本文的部分内容参考了他人的文章。在编写过程中,我们…...

Jenkins 监控dist.zip文件内容发生变化 触发自动部署

为Jenkins添加plugin http://xx:xx/manage 创建一个任务 构建触发器 每3分钟扫描一次,发现指定文件build.zip文件的MD5发生变化后 触发任务...

Linux系列讲解 —— FTP协议的应用

简单介绍一下FTP文件传输协议在linux系统中的应用。 目录 0. 基本概念1. FTP Server1.1 安装FTP Server1.2 FTP Server开启和关闭1.3 查看FTP Server是否开启1.4 FTP服务器配置 2. FTP Client2.1 lftp2.2 ftp2.3 sftp2.4 文件资源管理器集成的ftp和sftp 3. ftp常用命令 0. 基本…...

Rancher-RKE-install 部署k8s集群

一、为什么用Rancher-RKE-install 1.CNCF认证的k8s安装程序。 2.有中文文档。 二、安装步骤 1.下载Rancher-Rke的二进制包-下面是项目的地址 GitHub - rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distrib…...

PHP8的正则表达式-PHP8知识详解

在网页程序的时候,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是描述这些规则的工具。 正则表达式是把文本或者字符串按照一定的规范或模型表示的方法,经常用于文本的匹配操作。 例如:我们在填写手机号码的时候,…...

SpringCloud实用篇7——深入elasticsearch

目录 1 数据聚合1.1 聚合的种类1.2 DSL实现聚合1.2.1 Bucket聚合语法1.2.2 聚合结果排序1.2.3 限定聚合范围1.2.4 Metric聚合语法1.2.5.小结 1.3 RestAPI实现聚合1.3.1 API语法1.3.2 业务需求1.3.3 业务实现 2 自动补全2.1 拼音分词器2.2 自定义分词器2.3 自动补全查询2.4 实现…...

uni-app 经验分享,从入门到离职(二)—— tabBar 底部导航栏实战篇

文章目录 📋前言⏬关于专栏 🎯关于小程序 tabbar 的一些知识🎯创建一个基本的 tabBar📝最后 📋前言 这篇文章的内容主题是关于小程序的 tabBar 底部导航栏的入门使用和实战技巧。通过上一篇文章的基础,我们…...

Java虚拟机(JVM):内存区域

一、内存区域介绍 Java虚拟机(JVM)内存可以分为以下几个区域: 程序计数器(Program Counter Register):用于记录当前线程执行的字节码指令的地址,属于线程私有的区域。在任意时刻,一…...

11 - git stash 开发中临时加塞了紧急任务怎么处理

查看所有文章链接:(更新中)GIT常用场景- 目录 文章目录 开发中临时加塞了紧急任务怎么处理 开发中临时加塞了紧急任务怎么处理 当你此时工作区已经修改了 Readme 文件,然后突然需要解决其他问题(紧急问题、新任务&…...

高效的WMS系统手持盘点方案

WMS系统手持盘点就是指利用WMS系统支持的手持式电子盘点设备进行库存盘点的方式。 具体来说: - 手持盘点设备是一种小型的电子设备,具有移动条形码扫描功能,可以实时与WMS系统联通。 - WMS系统利用手持设备,可以给仓储人员下发具体的盘点任务,例如需要盘点的货位、商品等信息…...

Oracle分页技术

1、使用两层嵌套 SELECT *FROM (SELECT A.*, ROWNUM RNFROM (SELECT * FROM edw_t100_bal_all) AWHERE ROWNUM < 40)WHERE RN > 21; 2、使用between..and.. SELECT *FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM edw_t100_bal_all) A)WHERE RN between 21 and 40…...

2023-08-15 Untiy进阶 C#知识补充6——C#7主要功能与语法

文章目录 一、字面值改进二、out 内部声明 / 弃元三、ref 返回值四、本地函数五、抛出表达式六、元组七、模式匹配 ​ 注意&#xff1a;在此仅提及 Unity 开发中会用到的一些功能和特性&#xff0c;对于不适合在 Unity 中使用的内容会忽略。 ​ C# 7 对应 Unity 版本&#xff1…...

霍尔电流传感器原理与应用全解析

霍尔电流传感器测量原理深度解析 1. 霍尔效应电流测量基础 1.1 霍尔效应原理 霍尔效应是电流测量的基础物理现象&#xff0c;当导体或半导体薄片置于磁场中&#xff0c;并在其两端施加控制电流时&#xff0c;垂直于电流和磁场方向的两侧会产生电势差&#xff0c;这种现象称为…...

DLSS版本管理与性能优化:智能驱动游戏体验升级的开源解决方案

DLSS版本管理与性能优化&#xff1a;智能驱动游戏体验升级的开源解决方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 当RTX 4090显卡遇上《赛博朋克2077》最新DLSS&#xff08;深度学习超级采样&#xff09;版本&a…...

AI建站避坑指南:十个高频问题与真相解答

# 痛点共情&#xff1a;用AI建站&#xff0c;最怕遇到哪些“坑”&#xff1f;\很多宣传&#xff0c;心里还是没底。AI建站到底靠不靠谱&#xff1f;会不会做出来的网站千篇一律&#xff1f;万一做了几年&#xff0c;平台跑路了怎么办&#xff1f;我的客户数据安不安全&#xff…...

RT-Thread消息邮箱机制解析与应用实践

RT-Thread消息邮箱机制深度解析1. 消息邮箱概述1.1 线程通信基础机制在实时操作系统中&#xff0c;线程间通信(IPC)是系统设计的关键组成部分。RT-Thread提供了两种基础通信机制&#xff1a;消息邮箱和消息队列。消息邮箱以其轻量级和高效性著称&#xff0c;特别适合小数据量的…...

网易云音乐无损解析:打造个人高品质音乐库的终极指南

网易云音乐无损解析&#xff1a;打造个人高品质音乐库的终极指南 【免费下载链接】Netease_url 网易云无损解析 项目地址: https://gitcode.com/gh_mirrors/ne/Netease_url 还在为网易云音乐无法下载无损音质而烦恼吗&#xff1f;想要建立属于自己的高品质音乐收藏库吗&…...

4大价值点:旧设备复活开源工具如何让经典iOS设备重获新生?

4大价值点&#xff1a;旧设备复活开源工具如何让经典iOS设备重获新生&#xff1f; 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-…...

利用Python和快速傅里叶变换解析振动传感器数据:从趋势图到频谱分析的完整指南

1. 振动传感器数据分析入门指南 当你第一次拿到振动传感器采集的数据时&#xff0c;可能会被满屏的数字搞得一头雾水。别担心&#xff0c;我刚开始接触时也是这样。振动数据就像是一本用密码写成的日记&#xff0c;而Python和快速傅里叶变换(FFT)就是我们破译这些密码的神奇工具…...

终极QMC音频解密方案:qmc-decoder如何3分钟转换100首加密音乐

终极QMC音频解密方案&#xff1a;qmc-decoder如何3分钟转换100首加密音乐 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 在数字音乐版权保护的浪潮中&#xff0c;QQ音乐QM…...

STM32F103C8T6光敏云台DIY全流程:从硬件选型到代码调试(附避坑指南)

STM32F103C8T6光敏云台DIY全流程&#xff1a;从硬件选型到代码调试&#xff08;附避坑指南&#xff09; 去年夏天&#xff0c;我在阳台上搭建了一个小型太阳能发电系统&#xff0c;却发现电池板效率总是不稳定。经过观察发现&#xff0c;阳光角度变化导致光照强度差异显著。这个…...

OpenClaw多模型路由策略:百川2-13B与CodeLlama任务分配逻辑

OpenClaw多模型路由策略&#xff1a;百川2-13B与CodeLlama任务分配逻辑 1. 为什么需要多模型路由&#xff1f; 去年我在搭建个人AI助手时遇到一个典型问题&#xff1a;当我把所有任务都交给同一个大模型处理时&#xff0c;发现代码生成任务的质量总是不尽如人意。后来通过日志…...