leetcode -- 876.链表的中间节点

文章目录
- 🐨1.题目
- 🐇2. 解法1-两次遍历
- 🍀2.1 思路
- 🍀2.2 代码实现
- 🐁3. 解法2-快慢指针
- 🌾3.1 思路
- 🌾3.2 **代码实现**
- 🐮4. 题目链接
🐨1.题目
给你单链表的头结点head,请你找出并返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例1:

输入: head = [1,2,3,4,5]
输出: [3,4,5]
解释: 链表只有一个中间结点,值为 3 。
示例2:

输入: head = [1,2,3,4,5,6]
输出: [4,5,6]
解释: 该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。
提示:
- 链表的结点数范围是 [1, 100]
- 1 <= Node.val <= 100
🐇2. 解法1-两次遍历
🍀2.1 思路
该题没有对时间复杂度和空间复杂度作出要求,那么最直接的思路就是将链表遍历2遍:
- 第一次遍历:统计链表元素个数n。
- 第二次遍历:遍历到n/2个元素(链表首节点为第0个元素)。
🍀2.2 代码实现
struct ListNode* middleNode(struct ListNode* head){int count = 0;struct ListNode*cur = head;while(cur){cur = cur->next;count++;}struct ListNode*mid = head;for(int i = 0;i<count/2;i++){mid = mid->next;}return mid;
}
🐁3. 解法2-快慢指针
🌾3.1 思路
既然是找中间节点,那么不妨设置两个指针:
- 一个快指针fast,每次走2步;
- 一个慢指针slow,每次走1步。
那么当快指针走完的时候,慢指针正好是走到中间元素
如图所示:
我们这里需要判断结束的条件是当fast == NULL或者fast->next == NULL


🌾3.2 代码实现
struct ListNode* middleNode(struct ListNode* head){struct ListNode*fast = head;struct ListNode*slow = head;//这里要先判断fast,再判断fast->next,顺序不可写反while(fast&&fast->next){slow = slow->next;fast = fast->next->next;}return slow;
}
🐮4. 题目链接
leetcode – 876.链表的中间节点
相关文章:
leetcode -- 876.链表的中间节点
文章目录🐨1.题目🐇2. 解法1-两次遍历🍀2.1 思路🍀2.2 代码实现🐁3. 解法2-快慢指针🌾3.1 思路🌾3.2 **代码实现**🐮4. 题目链接🐨1.题目 给你单链表的头结点head&#…...
企业网络安全防御策略需要考虑哪些方面?
随着企业数字化转型的加速,企业网络安全面临越来越多的威胁。企业网络安全不仅仅关乎企业数据的安全,还关系到企业的声誉和利益,因此,建立全面的网络安全防御策略至关重要。 企业网络安全防御策略的实现需要考虑以下几个方面&…...
文心一言 vs. GPT-4 —— 全面横向比较
文心一言 vs. GPT-4 —— 全面横向比较 3月15日凌晨,OpenAI发布“迄今为止功能最强大的模型”——GPT-4。我第一时间为大家奉上了体验报告《OpenAI 发布GPT-4——全网抢先体验》。 时隔一日,3月16日下午百度发布大语言模型——文心一言。发布会上&…...
【进阶数据结构】二叉搜索树经典习题讲解
🌈感谢阅读East-sunrise学习分享——[进阶数据结构]二叉搜索树 博主水平有限,如有差错,欢迎斧正🙏感谢有你 码字不易,若有收获,期待你的点赞关注💙我们一起进步 🌈我们在之前已经学习…...
PyTorch 之 神经网络 Mnist 分类任务
文章目录一、Mnist 分类任务简介二、Mnist 数据集的读取三、 Mnist 分类任务实现1. 标签和简单网络架构2. 具体代码实现四、使用 TensorDataset 和 DataLoader 简化本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 一、Mnist 分类任…...
如何实现用pillow库来实现给图片加滤镜?
使用Pillow库可以非常容易地给图片加滤镜。Pillow库是Python图像处理的一个强大库,提供了多种滤镜效果,如模糊、边缘检测、色彩增强等。 下面是使用Pillow库实现给图片加滤镜的简单步骤: 安装Pillow库:首先需要安装Pillow库。可…...
微分中值定理
极值 目录 极值 费马引理 编辑 罗尔定理 拉格朗日中值定理 例题: 例2 例3 两个重要结论: 编辑 柯西中值定理: 如何用自己的语言理解极值呢? 极大值和极小值的类似,我们不再进行说明 极值点有什么特点吗&…...
redis 存储一个map 怎么让map中其中一个值设置过期时间,而不是过期掉整个map?
文章目录 redis 存储一个map 怎么让map中其中一个值设置过期时间,而不是过期掉整个map?Java 中 怎么 实现?方案一: Jedis方案二: Lettuce方案三: Redisson方案四: Jedisson方案五: RedisTemplate那种方式 效率最高 ?拓展:结语redis 存储一个map 怎么让map中其中一个值设置过…...
LeetCode:704. 二分查找
🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀算法专栏: 👉🏻123 一、🌱704. 二分查找 题目描述:给定一个 n 个元素有序的ÿ…...
Java 到底是值传递还是引用传递?
C 语言是很多变成语言的母胎,包括 Java。对于 C 语言来说,所有的方法参数都是通过 “值” 传递的,也就是说,传递给被调用方法的参数值存放在临时变量中,而不是存放在原来的变量中。这就意味着,被调用的方法…...
Apollo 配置变更原理
我们经常用到apollo的两个特性:1.动态更新配置:apollo可以动态更新Value的值,也可以修改environment的值。2.实时监听配置:实现apollo的监听器ConfigChangeListener,通过onChange方法来实时监听配置变化。你知道apollo…...
聊聊「订单」业务的设计与实现
订单,业务的核心模块; 一、背景简介 订单业务一直都是系统研发中的核心模块,订单的产生过程,与系统中的很多模块都会高度关联,比如账户体系、支付中心、运营管理等,即便单看订单本身,也足够的复…...
血细胞智能检测与计数软件(Python+YOLOv5深度学习模型+清新界面版)
摘要:血细胞智能检测与计数软件应用深度学习技术智能检测血细胞图像中红细胞、镰状细胞等不同形态细胞并可视化计数,以辅助医学细胞检测。本文详细介绍血细胞智能检测与计数软件,在介绍算法原理的同时,给出Python的实现代码以及Py…...
高速PCB设计指南(十五)
掌握IC封装的特性以达到最佳EMI抑制性能 将去耦电容直接放在IC封装内可以有效控制EMI并提高信号的完整性,本文从IC内部封装入手,分析EMI的来源、IC封装在EMI控制中的作用,进而提出11个有效控制EMI的设计规则,包括封装选择、引脚结…...
GPT-4:我不是来抢你饭碗的,我是来抢你锅的
目录 一、GPT-4,可媲美人类 二、它和ChatGPT 有何差别? 01、处理多达2.5万字的长篇内容 02、分析图像的能力,并具有「幽默感」 03、生成网页 三、题外话 四、小结 GPT-4的闪亮登场,似乎再次惊艳了所有人。 看了GPT-4官方的…...
Scala环境安装【傻瓜式教程】
文章目录安装scala环境依赖Java环境安装下载sacla的sdk包安装Scala2.12检查安装是否成功idea配置idea安装scala插件项目配置新建maven项目添加框架支持选择scala创建测试类安装scala环境依赖 Java环境安装 sacla环境安装之前需要先确认Java jdk安装完成 java具体安装步骤略&…...
js实现一个简单的扫雷
目录先看下最终的效果:首先来分析一个扫雷游戏具有哪些功能分析完成后我们就开始一步步的实现1. 相关html和css2. 我们使用类来完成相应功能3. 之后我们则是要定义一个地图4. 对地图进行渲染5. 对开始按钮添加点击事件6. 现在我们可以实现鼠标左击扫雷的功能7. 给单…...
禁用非必需插件,让 IDEA 飞起
文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech IDEA 为我们提供了众多的插件,但是这些插件并不都是必须的。如果电脑的性能不够强,反而会带来一些不必要的资源消耗。 因此这里整理了一些不常用的插件,可以…...
解决win10任何程序打开链接仍然为老旧IE的顽固问题[修改默认浏览器]
文章目录一、问题与修改原因1、着手修改吧2、弯路上探索3、发现祸根二、后话文章原出处: https://blog.csdn.net/haigear/article/details/129344503一、问题与修改原因 我们发现,很多程序默认的网页打开浏览器都是IE,这个很是郁闷ÿ…...
计算机网络体系结构——“计算机网络”
各位CSDN的uu们你们好呀,今天小雅兰来学习一个全新的知识点,就是计算机网络啦,下面,开始虚心学习。 计算机网络的概念 计算机网络的功能 计算机网络的组成 计算机网络的分类 标准化工作 计算机网络的性能 计算机网络的概念 …...
TFT Overlay:云顶之弈玩家的终极装备合成与羁绊指南
TFT Overlay:云顶之弈玩家的终极装备合成与羁绊指南 【免费下载链接】TFT-Overlay Overlay for Teamfight Tactics 项目地址: https://gitcode.com/gh_mirrors/tf/TFT-Overlay 在云顶之弈的激烈对局中,你是否经常为记不住复杂的装备合成公式而烦恼…...
第21课:把 Qt 常用能力串成实战链路,打通文本、绘图、线程、网络与多媒体
本节路线图 为什么这节课看起来很散, → 先把程序的输入输出拿下: → 让界面真正活起来:`QP 兔兔建议 先顺着路线图跑一遍,再抄命令和代码,学习体验会轻松很多。 前两课我们已经把 Qt 的“界面底座”搭起来了,但真正做项目时,很多同学还是会卡在另一个问题上:界面会做了…...
Phi-3-mini-4k-instruct-gguf保姆级教程:开箱即用的GGUF文本生成指南
Phi-3-mini-4k-instruct-gguf保姆级教程:开箱即用的GGUF文本生成指南 1. 认识Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个模型特别适合处理问答、文本改写、摘要整理和简短创作等任务。它最大的…...
SEO关键词推广与视频内容创作有什么关系
SEO关键词推广与视频内容创作:一场紧密交织的战斗 在当今的数字化时代,SEO(搜索引擎优化)和视频内容创作已经成为每个企业和个人在网络世界中取得成功的重要途径。SEO关键词推广与视频内容创作究竟有什么关系呢?本文将…...
4个维度解析YetAnotherKeyDisplayer:开源实时按键可视化工具全指南
4个维度解析YetAnotherKeyDisplayer:开源实时按键可视化工具全指南 【免费下载链接】YetAnotherKeyDisplayer The application for displaying pressed keys of the keyboard 项目地址: https://gitcode.com/gh_mirrors/ye/YetAnotherKeyDisplayer YetAnothe…...
WarcraftHelper解决方案:魔兽争霸3跨系统优化指南
WarcraftHelper解决方案:魔兽争霸3跨系统优化指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为经典的即时战略游戏&#…...
个人创作者利器:AI净界RMBG-1.4,3秒完成以往30分钟的手动精修
个人创作者利器:AI净界RMBG-1.4,3秒完成以往30分钟的手动精修 1. 为什么你需要AI净界RMBG-1.4? 作为一名内容创作者,你是否经常遇到这些困扰: 拍摄的产品照片背景杂乱,需要花费大量时间手动抠图精心设计…...
C/C++ 调用约定与 Windows GDI 位图操作实用解析
stdcall调用约定 stdcall很多时候被称为pascal调用约定,因为pascal是早期很常见的一种教学用计算机程序设计语言,其语法严谨,使用的函数调用约定就是stdcall。在Microsoft C系列的C/C编译器中,常常用PASCAL宏来声明这个调用约…...
OpenClaw安全方案:百川2-13B-4bits量化模型的本地化数据边界
OpenClaw安全方案:百川2-13B-4bits量化模型的本地化数据边界 1. 为什么我们需要本地化数据边界 去年我在帮一家初创公司做财务自动化方案时,遇到一个棘手问题:他们需要分析包含客户银行账号的Excel报表,但公司严格禁止数据上传到…...
Shell编程避坑指南:为什么你的while循环总出问题?7个常见错误排查
Shell编程避坑指南:为什么你的while循环总出问题?7个常见错误排查 在Shell脚本开发中,while循环是处理未知迭代次数的利器,但也是错误的高发区。很多开发者在使用while时经常遇到脚本卡死、逻辑异常或结果不符合预期等问题。本文将…...
