leetCode第876题 链表的中间结点
链接:https://leetcode-cn.com/problems/middle-of-the-linked-list

给定一个头结点为 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 之间。

一般的方法当然是先算出链表的长度,然后计算中间结点的位置,然后将这个结点返回。
这样计算长度循环一次,寻找结点循环一次,时间复杂度也在O(n)级别。
但设立快慢指针能使循环减小到一次。
快慢指针都设置在head处,fast步长为2,slow步长为1,因为fast速度是slow的两倍,所以当fast到了链表末尾,slow刚好在链表中间。

## python3
class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = next
class Solution:def middleNode(self, head: ListNode) -> ListNode:slow = headfast = headwhile fast != None and fast.next != None:slow = slow.nextfast = fast.next.nextreturn slow

链表的中间结点-python相关推荐

  1. 876. 链表的中间结点 (Python 实现)

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

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

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

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

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

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

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

  5. 876. 链表的中间结点(C语言)

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

  6. 七十一、去重交换排序链表、 求链表的中间结点

    @Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 最近在重新梳理学算法的知识,本文为链表常见操作复习的总结文章,会讲解 ...

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

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

  8. leetcode-876. 链表的中间结点解法

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

  9. 876. 链表的中间结点

    给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点 代码一: 自己想的一个方法 class Solution {public ListNode m ...

  10. 链表题目--2 求链表的中间结点 和 求链表中倒数第k个结点

    求链表的中间结点 思路 一个走两步,一个走一步.一个走到尾,另外一个就走到了中间 /*** Definition for singly-linked list.* struct ListNode {* ...

最新文章

  1. 安卓相对布局常用语句
  2. 1.6万亿参数,秒杀GPT-3!谷歌推出超级语言模型Switch Transformer,比T5快4倍
  3. Servlet 和Filter的生命周期
  4. 13行代码AC_2017年省赛C组蓝桥杯第一题 贪吃蛇长度(考查文件读取)
  5. Android之如果解决Android studio项目里面的类名不能重命名
  6. [AH2017/HNOI2017] 大佬
  7. python-办公自动化-索引-202002
  8. python编程(supervisor程序管理)
  9. 消失了好久。。。。那是因为~
  10. MyBatis出现红色错误,已解决(Establishing SSL connection without)
  11. jdk8 lambda表达式
  12. 汽车类自媒体怎么找素材?这几个办法很好用
  13. python图片拼接算法实现_python实现单张图像拼接与批量图片拼接
  14. 软件测试中80/20原则
  15. 万豪国际集团旗舰酒店品牌正式入驻中国东北地区
  16. Pycharm代码docker容器运行调试 | 机器学习系列
  17. SwiftUI iOS 开源组件之银行卡切换效果 (教程含源码)
  18. 三星android版本升级包下载,三星Galaxy S21系列系统更新 安卓安全补丁更新到4月1日...
  19. SysinternalsSuite
  20. vue中遍历呈现数据

热门文章

  1. 中通快递 | 快递单号查询API
  2. 基于MQTT的python聊天室
  3. Deep Mind用AlphaZero开发国际象棋新规则-3!
  4. Frodo and pillows _CF760B
  5. DataSource
  6. 鸿蒙系统吹了多少年了还没出,实话实说,在鸿蒙系统上,余承东吹了几次牛都没实现 - 区块网...
  7. Solr完整个性化搜索排序方案
  8. Jmeter(五)bayboy录制时弹窗“当前页面的脚本发生错误”解决办法
  9. 沪牌学院-沪拍拍课堂4: 实拍前的演练
  10. CS信息系统建设和服务认证都有哪些等级?系统集成企业如何评估申报CS认证等级?