leetcode 876. 链表的中间结点 做题笔记
题目:
给定一个头结点为 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例 1:
输入:[1,2,3,4,5]
输出:此列表中的结点 3 (序列化形式:[3,4,5])
返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.
示例 2:
输入:[1,2,3,4,5,6]
输出:此列表中的结点 4 (序列化形式:[4,5,6])
由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。
提示:
给定链表的结点数介于 1 和 100 之间。
思路与算法:
单指针法
我们可以对方法一进行空间优化,省去数组 A。
我们可以对链表进行两次遍历。第一次遍历时,我们统计链表中的元素个数 N;第二次遍历时,我们遍历到第 N/2 个元素(链表的首节点为第 0 个元素)时,将该元素返回即可。
复杂度分析
时间复杂度:O(N)O(N),其中 NN 是给定链表的结点数目。
空间复杂度:O(1)O(1),只需要常数空间存放变量和指针。
代码:
class Solution {public ListNode middleNode(ListNode head) {int n = 0;ListNode cur = head;while (cur != null) {++n;cur = cur.next;}int k = 0;cur = head;while (k < n / 2) {++k;cur = cur.next;}return cur;}
}
leetcode 876. 链表的中间结点 做题笔记相关推荐
- Leetcode 876. 链表的中间结点 (每日一题 20210918)
给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) ...
- LeetCode 876——链表的中间结点
1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形 ...
- LeetCode 876. 链表的中间结点(快慢指针)
1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 2. 解题 快慢指针法 class Solution {public:List ...
- LeetCode 876. 链表的中间结点
原题链接 解题思路:快慢指针,快指针走两步,慢指针走一步.快指针到NULL慢指针自然到中间位置 /*** Definition for singly-linked list.* struct List ...
- LeetCode Java刷题笔记—876. 链表的中间结点
876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点. 简单难度.使用快慢指针即可,快指针fast每次走2步,慢指针slow ...
- LeetCode刷题 876链表的中间结点
876. 链表的中间结点 难度简单550收藏分享切换为英文接收动态反馈 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[ ...
- 【LeetCode题目详解】(二)206.反转链表、876.链表的中间结点
目录 一.力扣第206题:反转链表 1.思路一 2.思路二 二.力扣第876题:链表的中间结点 1.思路一 2.思路二 总结 一.力扣第206题:反转链表 题目链接:206. 反转链表 - 力扣(Le ...
- leetcode 876.链表中间结点
链表中间结点 leetcode题目链接:876. 链表的中间结点 一.朴素解法 最直观的思路,因为不知道这个链表的长度,就先通过一次循环统计链表的长度len 之后第二次遍历,直到找到中间结点,输出 / ...
- LeetCode Algorithm 876. 链表的中间结点
876. 链表的中间结点 Ideas 这题直接秒杀吧,快慢指针,快指针一次走两步,慢指针一次走一步,快指针到头之后慢指针正好到链表中间. Code C++ class Solution {public ...
最新文章
- DC学院爬虫学习笔记(六):浏览器抓包及headers设置
- 这八大互联网金融商业模式,你都知道吗?
- manjaro笔记本显卡驱动_从入门到高端!AMD Radeon RX 500系列移动显卡全解析
- 返回后的数据处理_【掘金使用技巧2】掘金返回数据中时间的处理方法
- 2020中国网络媒体发展报告
- 使用sklearn预测走势_Prophet: 时间序列预测库
- 如何成为一名更出色的开发者?
- Tolua 报错cannot load incompatible bytecode
- 关于断点续传的那些事
- 啊哈c语言逻辑推箱子答案,啊哈C语言!逻辑的挑战(修订版)
- notepad实现垂直标签
- SPSS 数据清理-基础
- 上课笔记-机器学习(5)-美国人口普查数据进行收入预测分类
- 网易2019实习生招聘编程题之数对
- 写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。
- 官方Nexus软件下载教程
- 模电学习第一天--PN结梳理
- WPF编程;上位机编程;C#编程;仿QQ基础实现(一)之界面预览
- 拇指锁屏APP:时代新起锁屏之秀
- 关于 中国操作系统 COS 的随笔
热门文章
- IE 浏览器已“死”,一个时代的终结
- es6 javascript属性的可枚举性
- Sony蓝牙音箱连接Mac电脑音质变差
- 小米note_2014616 2014619 2015021 2015022_通用官方线刷包_救砖包_解账户锁
- 剑灵电五服务器位置,剑灵都有哪些区合区?
- RPATH $ORIGIN LD_LIBRARY_PATH和可移植 linux 二进制文件的描述
- 计算机黑屏一秒恢复,电脑经常黑屏几秒恢复,电脑黑屏一两秒后恢复
- iOS的安装包:deb、ipad、pxl
- Linux杀死指定端口的进程
- 过半985、单岗位2K+简历!速腾聚创如何开展校园招聘?