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

思路:快慢指针,快指针两步,慢指针一步。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode middleNode(ListNode head) {if(head==null || head.next==null) {return head;}ListNode low = head;ListNode fast = head.next;while(fast!=null && fast.next!=null) {low = low.next;fast = fast.next.next;}//根据快指针是否为空判断边界条件if(fast!=null) {return low.next;}return low;}
}

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

  1. leetcode876. 链表的中间结点

    leetcode876. 链表的中间结点 题目描述 链接: leetcode876. 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例1 ...

  2. 单链表:头结点和头指针的实现方式

    链式存储是什么样的结构? 链式存储结构的特点使用任意的存储单元存储线性表的数据元素,存储单元可以使连续的也可以是不连续的,因此,为了表示每个数据元素和下一个元素的关系,除了存储本身的信息之外,还需要存 ...

  3. 建立一个按年龄排序的有序链表,每个结点包括学号、姓名、性别、年龄。建立一个新的结点,通过年龄将此结点插入到链表中去,使之仍然有序

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容12]建立一个按年龄排序的有序链表,每个结点包括学号.姓名 ...

  4. 反转链表:输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。...

    2019独角兽企业重金招聘Python工程师标准>>> 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点.     为了正确的反转一个链表,需要调整链表 ...

  5. 给定链表中间某结点指针,删除链表中该结点

    题目 实现一个算法来删除单链表中间的一个结点,只给出指向那个结点的指针. 例子: 输入:指向链表a->b->c->d->e中结点c的指针 结果:不需要返回什么,得到一个新链表: ...

  6. 带哨兵节点的链_关于链表中哨兵结点问题的深入剖析

    算法 数据结构 关于链表中哨兵结点问题的深入剖析 最近正在学习UC Berkeley的CS61B这门课,主要是采用Java语言去实现一些数据结构以及运用数据结构去做一些project.这门课不仅告诉你 ...

  7. 插入始终是1_C++入门篇(四十四),链表查询与结点插入

    链表的查询 对链表进行各种操作时,需要先对某一个结点进行查询定位.假设数据中没有数据相同的结点,我们可以编写这样一个函数,查找到链表中符合条件的结点,我们在四十三篇的代码中声明搜索结点函数原型: 在底 ...

  8. C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)

    http://blog.csdn.net/xiaofeige567/article/details/27484137 C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表) ...

  9. 链表的头结点和尾节点的用处

    某些情况下设置尾指针的好处 尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是 ...

最新文章

  1. LeetCode简单题之判断国际象棋棋盘中一个格子的颜色
  2. Java 基础------16进制转2进制
  3. Linux的ELF格式分析
  4. 服务器时间修改日志怎么查,查看云服务器的操作日志
  5. 深入理解Linux软件包的配置、编译与安装
  6. python类中方法调用自己类的方法_python怎么调用类方法
  7. 使用最大似然法来求解线性模型(1)
  8. 【图像处理-直方图】
  9. MTK平台环境搭建---Ubuntu Linux 下执行sudo apt-get install提示“现在没有可用的软件包……...
  10. mysql如何安装 centos7_如何解决centos7上mysql安装及问题
  11. git 本地 更新到 仓库 仅仅 操作系统课程设计
  12. vs多项目模板及add-in开发
  13. 算法设计与分析第二版第一章笔记
  14. 学习笔记——激励函数activation func、损失函数loss func
  15. 程序猿的中秋节——浪漫至死不渝!!
  16. 黑苹果驱动_黑苹果怎么更新驱动程序?
  17. js中易错难点集合(1)
  18. 基于android的教育机构家校通系统app
  19. 智能振弦传感器的读取工具振弦采集仪
  20. 史上最全网络端口号大全,肝货

热门文章

  1. Linux下rgmii接口与fpga相连,FPGA控制RGMII接口PHY芯片88E1512网络通信
  2. 华北水利水电C 语言实验11,华北水利水电大学C语言实验11.doc
  3. vue 计算属性和data_Vue:计算属性
  4. 与0xf2值相等的是python_腾讯笔试题涵盖的基础知识
  5. python定时发送信息_python实现定时发送消息
  6. tomcat webapps目录文件都能删吗_详细测试实现Tomcat根域名访问的场景,看这篇文章就够了...
  7. 【转】状态机思路在程序设计中的应用
  8. C#多线程之旅(七)——终止线程
  9. 一步步编写操作系统 53 任务状态段TSS介绍
  10. ajax里绑定框,Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)