当前位置:网站首页>LeetCode每日一练 —— 876. 链表的中间结点
LeetCode每日一练 —— 876. 链表的中间结点
2022-07-27 18:33:00 【飞向星的客机】
前言
Wassup guys!我是Edison
今天是 LeetCode 上的 leetcode 876. 链表的中间结点
Let’s get it!

1. 题目分析
给定一个头结点为 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例 1:
示例 2:
2. 题目图解
这道题用的方法是 快慢指针法;
(1)定义慢指针 slow 一次走 1 步;
(2)定义快指针 fast 一次走 2 步;
奇数情况
当链表为 奇数 个时,首先,slow 和 fast 都指向第一个节点(如图所示)
然后 slow 一次走 1 步,fast 一次走 2 步,动图演示
当 fast 走到 尾节点 的时候,slow 指向的就是 中间节点
偶数情况
当链表为 偶数 个时,首先,slow 和 fast 都指向第一个节点(如图所示)
然后 slow 一次走 1 步,fast 一次走 2 步,动图演示
可以看到,当 fast 走到 NULL 时,slow 指向的就是 中间节点;
总结:
(1)当链表的节点数为 奇数 时,循环结束的条件就是 fast 走到 尾节点;
(2)当链表的节点数为 偶数 时,循环结束的条件就是 fast 走到 NULL;
3. 代码实现
接口代码
struct ListNode* middleNode(struct ListNode* head){
struct ListNode* slow, *fast;
slow = fast = head
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
}
return slow;
}
提交结果
还要注意一点:在 while 循环判断部分,写的是继续的条件,想的是结束的条件!
边栏推荐
- 金仓数据库 KingbaseES 异构数据库移植指南 (4. 应用迁移流程)
- 推荐一款强大的搜索工具Listary
- NPDP|什么样的产品经理可以被称为优秀?
- Academic sharing | Tsinghua University, Kang Chongqing: power system carbon measurement technology and application (matlab code implementation)
- [program life] "stage summary" - unwilling to be ordinary
- 搭建discuz论坛并攻破盗取数据库
- 一文了解Pycharm快捷键
- Best practices for Oracle kingbasees migration of Jincang database (2. Overview)
- Qt opengl 让物体在关照下动起来,形成动画
- Typroa 拼写检查: 缺少对于 中文 的字典文件
猜你喜欢

Source Insight 4.0使用介绍

How to translate the address in the program?

Arduino development (II)_ RGB light control method based on Arduino uno development board

LabVIEW学习笔记九:捕捉由程序修改控件值产生的“值改变”事件

Uncaught SyntaxError: redeclaration of let page

Slim: self supervised point cloud scene flow and motion estimation (iccv 2021)

Kingbasees heterogeneous database migration guide (4. Application migration process)

NPDP|什么样的产品经理可以被称为优秀?

自动化测试----unittest框架
![[numpy] broadcast mechanism](/img/1f/8d61ac7b35a82067bc0b77426590eb.png)
[numpy] broadcast mechanism
随机推荐
Where is the program?
Go --- automatic recompilation of air
Express WEB服务器的简单使用
R语言dplyr包进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组加和值(sum)
金仓数据库 Oracle 至 KingbaseES 迁移最佳实践 (4. Oracle数据库移植实战)
Download of MySQL driver jar package -- nanny tutorial
Automatic test solution based on ATX
认识网络模型数据的封装和解封装
Write bootloader from 0
js中数组与字符串常用方法属性总结
[Numpy] 数组索引和切片
Hexagon_V65_Programmers_Reference_Manual(7)
坚持做一件事情
DJI内推码(一码一用,2022年7月26日更新)
Best practices for Oracle kingbasees migration of Jincang database (2. Overview)
最新版web漏洞扫描工具AppScan\AWVS\Xray安装及使用教程
Slim: self supervised point cloud scene flow and motion estimation (iccv 2021)
Programmer growth Chapter 18: project launch
一文读懂Plato Farm的ePLATO,以及其高溢价缘由
Recommend a powerful search tool listary