算法

876. Middle of the Linked List

Given a non-empty, singly linked list with head node head, return a middle node of linked list.

If there are two middle nodes, return the second middle node.

Example 1:

Input: [1,2,3,4,5]
Output: Node 3 from this list (Serialization: [3,4,5])
The returned node has value 3.  (The judge's serialization of this node is [3,4,5]).
Note that we returned a ListNode object ans, such that:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.

Example 2:

Input: [1,2,3,4,5,6]
Output: Node 4 from this list (Serialization: [4,5,6])
Since the list has two middle nodes with values 3 and 4, we return the second one.

解法

解决思路:fast快, slow慢两个链表同时走, fast走两步,slow走一步。当fast为null时,则slow刚好在中间位置。

比如:[1,2,3,4,5]

第0步: slow 1, fast 1
第1步: slow 2, fast 3
第2步: slow 3, fast 5

代码实现

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode middleNode(ListNode head) {ListNode slow = head;ListNode fast = head;while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;}return slow;}
}

算法:获取链表的中间值Middle of the Linked List相关推荐

  1. C语言获取链表的中间值Middle of the Linked List(附完整源码)

    获取链表的中间值Middle of the Linked List node结构体 获取链表的中间值Middle of the Linked List 完整源码(定义,实现,main函数测试) nod ...

  2. 【数据结构与算法】获取链表中值算法

    题意说明 链表取中值,要求: 不用size(),只允许遍历一次-- 取出链表中间结点的值. 问题 ps.偶数个怎么处理?--计算机科学里,对于偶数个数的集合,取中间两值的左值即为中值. 思路 用两个指 ...

  3. C++获取链表的大小的实现算法(附完整源码)

    C++获取链表的大小的实现算法 C++获取链表的大小的实现算法完整源码(定义,实现,main函数测试) C++获取链表的大小的实现算法完整源码(定义,实现,main函数测试) #include < ...

  4. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    文章目录 前言 IBI和BPM 核心操作 -- 识别一个脉搏信号 问题一:阈值的选取 问题二:特征点识别 算法整体框架与代码实现 总结 基于uFUN开发板的Keil源码下载 uFUN评测系列文章 前言 ...

  5. PulseSensor开发文档(二)动态阈值算法获取心率值

    文章目录 1.摘要 2.算法核心思想与心率信号的有效特征点 3.动态阈值算法分思路分析 4.算法整体实现 5.算法实现效果 6.小结 1.摘要 在上一篇文章中:具体介绍了如何用DMA和ADC采集心电数 ...

  6. JS数据结构与算法_链表

    上一篇:JS数据结构与算法_栈&队列 下一篇:JS数据结构与算法_集合&字典 写在前面 说明:JS数据结构与算法 系列文章的代码和示例均可在此找到 上一篇博客发布以后,仅几天的时间竟然 ...

  7. 数据结构与算法--复杂链表的复制

    复杂链表的复制 题目:实现一个函数complexListNode 复制一个复杂链表.在链表中,每个节点除了有一个next指针指向下一个节点,还有另外一个before节点,before节点指向链表中任意 ...

  8. 获取文件哈希值_图解:什么是哈希?

    为什么要有哈希? 假设我们要设计一个系统来存储将员工手机号作为主键的员工记录,并希望高效地执行以下操作: 插入电话号码和相应的信息.(插入) 搜索电话号码并获取信息.(查找) 删除电话号码及相关信息. ...

  9. 数据结构与算法 内核链表实现商品购物系统项目+Makefile

    数据结构与算法 内核链表实现商品购物系统项目 第一章 项目实现思维 [1]编译介绍 [2]框架思维 第二章 Makefile编写 第三章 代码编写实现 [1]favorite.txt文件 [2]his ...

  10. 【Java】LeetCode 876 获取链表中间节点

    题目:给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 解题思路 : 获取链表中间节点,算法思想是利用快慢指针 : 1.如上图分析,奇数节点链 ...

最新文章

  1. Microsoft Build 2015
  2. C# 中的var关键字
  3. H3C Basic NAT
  4. System.BadImageFormatException”类型的未经处理的异常在 xx.exe 中发生
  5. 手势追踪,高通走完其VR一体机的最后一里路
  6. C/C++/Java 的基本数据类型
  7. vue2移动端使用vee-validate进行表单验证
  8. (二)操作系统设计技术知识重点笔记
  9. 不忘每份支持,网易云信感谢一路有你
  10. Web安全——服务器端请求伪造(SSRF)
  11. 解决报错 javax.persistence.TransactionRequiredException: Executing an update/delete query
  12. 十分钟上手 ES 2020 新特性
  13. H G W S哪一个不是状态函数_HAWE哈威BVH11H/M/S/2-X24换向阀
  14. python 7-24 sdut-array2-2-局部峰值 (10 分)
  15. linux剪切一行,Linux基础命令:文本处理工具之cut
  16. Pcap封包维护工具
  17. 【代码规范】阿里巴巴代码规范
  18. Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决 作者:孤风一
  19. Git删除提交历史记录
  20. 网络游戏引入人工智能:游戏玩家并非真人

热门文章

  1. win mysql编译_MySQL5.5在Windows7下编译的详细步骤
  2. mysql 行显示 g_MySQL行(记录)详细操作
  3. 必看干货!五个步骤帮您成功实施IT SLA
  4. Hibernate XXX.hbm.xml 里的class标签的 schema 属性解释
  5. 【转】搞清楚脚本中这些函数的调用规律
  6. tomcat设置独立jvm的例子
  7. SpringBoot 房屋租赁系统3.0 manland.liuyanzhao.com
  8. Restful API 的设计规范
  9. C语言getchar()=='\n'的使用,对输入的任意个字符操作
  10. redchat怎么编写shell脚本_Linux如何编写shell脚本?