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 之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/middle-of-the-linked-list。

  • 此题是链表查询中比较简单的题,解题的方式也比较多,例如用数组把链表的所有节点存起来,快慢指针等。
  • 我们可以先遍历一遍链表,记录下链表的大小,然后从头再遍历链表返回链表中间节点。
class Solution {
public:ListNode* middleNode(ListNode* head) {ListNode* tail = head;int left = 0;int right = 0;while (tail && tail->next) {tail = tail->next;right++;}while (left < right) {head = head->next;left++;right--;}return head;}
};
  • 快慢指针
class Solution {
public:ListNode* middleNode(ListNode* head) {ListNode* fast = head;ListNode* slow = head;while (fast && fast->next) {slow = slow->next;fast = fast->next->next;}return slow;}
};

leetcode 链表的中间结点相关推荐

  1. 每日一道leetcode(python)876. 链表的中间结点

    每日一道leetcode(python)876. 链表的中间结点 2021-08-19 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1 ...

  2. JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】

    题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式: ...

  3. 【LeetCode题目详解】(二)206.反转链表、876.链表的中间结点

    目录 一.力扣第206题:反转链表 1.思路一 2.思路二 二.力扣第876题:链表的中间结点 1.思路一 2.思路二 总结 一.力扣第206题:反转链表 题目链接:206. 反转链表 - 力扣(Le ...

  4. LeetCode 876——链表的中间结点

    1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形 ...

  5. Leetcode 876. 链表的中间结点 (每日一题 20210918)

    给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) ...

  6. LeetCode Algorithm 876. 链表的中间结点

    876. 链表的中间结点 Ideas 这题直接秒杀吧,快慢指针,快指针一次走两步,慢指针一次走一步,快指针到头之后慢指针正好到链表中间. Code C++ class Solution {public ...

  7. LeetCode 876. 链表的中间结点(快慢指针)

    1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 2. 解题 快慢指针法 class Solution {public:List ...

  8. LeetCode(876)——链表的中间结点(JavaScript)

    给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4, ...

  9. 【LeetCode 876】链表的中间结点

    题目描述: 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形 ...

  10. LeetCode 876、链表的中间结点

    876.链表的中间结点 1)题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表 ...

最新文章

  1. FFmpeg集成到GPU
  2. 蓝桥杯java第六届决赛第三题--显示二叉树
  3. JavaFX滚动事件
  4. Dev C++安装第三方库boost
  5. 1.5 为什么正则化可以减少过拟合?
  6. multsim仿真1:利用multisim化简逻辑函数
  7. Origami 用于Quartz 的免费的交互设计框架
  8. ubuntu18 安装 mysql5.7
  9. python公众号文章爬虫_微信公众号文章爬虫
  10. Echarts使用教程
  11. 2021年上半年软件设计师上午真题及答案解析
  12. 一对一关系,一对多关系,多对多关系的简单理解
  13. Flutter 接入iOS苹果内购支付踩坑过程
  14. clustream java_数据流聚类算法
  15. 封装python函数判断成绩等级_封的解释|封的意思|汉典“封”字的基本解释
  16. Qt自定义控件的实践——电池电量控件
  17. mac安装python虚拟环境_mac 下 python 虚拟环境的安装和配置
  18. android studio中的模拟器,使用Android Studio创建Andorid模拟器
  19. 中国首款前装L3自动驾驶卡车发布:一汽解放制造,京东车队运营
  20. 怎么压缩图片大小?建议收藏这些方法

热门文章

  1. iphone13到底香不香,真的这么难抢?
  2. mysql rds 是什么_mysql.rds.aliyuncs.com
  3. Angular4_安全导航操作符 ( ?. ) 和空属性路径
  4. JavaScript如何运行
  5. mcinabox运行库下载安装_mcinabox运行库下载
  6. 文件共享服务器热备,两台云服务器如何实现双机热备
  7. Matlab坐标轴标签中文设置宋体,英文设置新罗马字体(Times New Roman)
  8. 「AutoML」AutoML专栏上线,跟Google一起见证调参党的末日?
  9. 手机APP UserAgent查询
  10. Struts2检测工具