算法:获取链表的中间值Middle of the Linked List
算法
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相关推荐
- C语言获取链表的中间值Middle of the Linked List(附完整源码)
获取链表的中间值Middle of the Linked List node结构体 获取链表的中间值Middle of the Linked List 完整源码(定义,实现,main函数测试) nod ...
- 【数据结构与算法】获取链表中值算法
题意说明 链表取中值,要求: 不用size(),只允许遍历一次-- 取出链表中间结点的值. 问题 ps.偶数个怎么处理?--计算机科学里,对于偶数个数的集合,取中间两值的左值即为中值. 思路 用两个指 ...
- C++获取链表的大小的实现算法(附完整源码)
C++获取链表的大小的实现算法 C++获取链表的大小的实现算法完整源码(定义,实现,main函数测试) C++获取链表的大小的实现算法完整源码(定义,实现,main函数测试) #include < ...
- 基于uFUN开发板的心率计(二)动态阈值算法获取心率值
文章目录 前言 IBI和BPM 核心操作 -- 识别一个脉搏信号 问题一:阈值的选取 问题二:特征点识别 算法整体框架与代码实现 总结 基于uFUN开发板的Keil源码下载 uFUN评测系列文章 前言 ...
- PulseSensor开发文档(二)动态阈值算法获取心率值
文章目录 1.摘要 2.算法核心思想与心率信号的有效特征点 3.动态阈值算法分思路分析 4.算法整体实现 5.算法实现效果 6.小结 1.摘要 在上一篇文章中:具体介绍了如何用DMA和ADC采集心电数 ...
- JS数据结构与算法_链表
上一篇:JS数据结构与算法_栈&队列 下一篇:JS数据结构与算法_集合&字典 写在前面 说明:JS数据结构与算法 系列文章的代码和示例均可在此找到 上一篇博客发布以后,仅几天的时间竟然 ...
- 数据结构与算法--复杂链表的复制
复杂链表的复制 题目:实现一个函数complexListNode 复制一个复杂链表.在链表中,每个节点除了有一个next指针指向下一个节点,还有另外一个before节点,before节点指向链表中任意 ...
- 获取文件哈希值_图解:什么是哈希?
为什么要有哈希? 假设我们要设计一个系统来存储将员工手机号作为主键的员工记录,并希望高效地执行以下操作: 插入电话号码和相应的信息.(插入) 搜索电话号码并获取信息.(查找) 删除电话号码及相关信息. ...
- 数据结构与算法 内核链表实现商品购物系统项目+Makefile
数据结构与算法 内核链表实现商品购物系统项目 第一章 项目实现思维 [1]编译介绍 [2]框架思维 第二章 Makefile编写 第三章 代码编写实现 [1]favorite.txt文件 [2]his ...
- 【Java】LeetCode 876 获取链表中间节点
题目:给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 解题思路 : 获取链表中间节点,算法思想是利用快慢指针 : 1.如上图分析,奇数节点链 ...
最新文章
- Microsoft Build 2015
- C# 中的var关键字
- H3C Basic NAT
- System.BadImageFormatException”类型的未经处理的异常在 xx.exe 中发生
- 手势追踪,高通走完其VR一体机的最后一里路
- C/C++/Java 的基本数据类型
- vue2移动端使用vee-validate进行表单验证
- (二)操作系统设计技术知识重点笔记
- 不忘每份支持,网易云信感谢一路有你
- Web安全——服务器端请求伪造(SSRF)
- 解决报错 javax.persistence.TransactionRequiredException: Executing an update/delete query
- 十分钟上手 ES 2020 新特性
- H G W S哪一个不是状态函数_HAWE哈威BVH11H/M/S/2-X24换向阀
- python 7-24 sdut-array2-2-局部峰值 (10 分)
- linux剪切一行,Linux基础命令:文本处理工具之cut
- Pcap封包维护工具
- 【代码规范】阿里巴巴代码规范
- Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决 作者:孤风一
- Git删除提交历史记录
- 网络游戏引入人工智能:游戏玩家并非真人
热门文章
- win mysql编译_MySQL5.5在Windows7下编译的详细步骤
- mysql 行显示 g_MySQL行(记录)详细操作
- 必看干货!五个步骤帮您成功实施IT SLA
- Hibernate XXX.hbm.xml 里的class标签的 schema 属性解释
- 【转】搞清楚脚本中这些函数的调用规律
- tomcat设置独立jvm的例子
- SpringBoot 房屋租赁系统3.0 manland.liuyanzhao.com
- Restful API 的设计规范
- C语言getchar()=='\n'的使用,对输入的任意个字符操作
- redchat怎么编写shell脚本_Linux如何编写shell脚本?