给定一个头结点为 head 的非空单链表,返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点
代码一:
自己想的一个方法

class Solution {public ListNode middleNode(ListNode head) {ListNode p1 = head;ListNode p2 = head;//i,j作为判断标志int i = 1;int j = 1;//int res = 0;while(p1.next!=null){p1 = p1.next;i++;if(j<=(i>>1)){等价于j<=i/2j++;p2 = p2.next;}}return p2;}
}

代码二:
定义一个链表数组,存储所有节点,然后返回中间节点。不得不说,是自己格局小了,不会也不敢定义一个链表数组

class Solution {public ListNode middleNode(ListNode head) {ListNode[] temp= new ListNode[100];ListNode p = head;int x = 0;while(p!=null){temp[x++] = p;p = p.next;}return temp[x/2];}
}

代码三:
遍历两遍链表,第一遍用一个指针记录链表个数,第二遍遍历到1/2即返回结点

class Solution {public ListNode middleNode(ListNode head) {int i = 0;ListNode p = head;while(p!=null){i++;p = p.next;}ListNode q = head;for(int j= 0;j<i/2;j++){q = q.next;}return q;}
}

代码四:
双指针,快指针一次走两步,慢指针一次走一步。不得不说,官方果然还是官方

class Solution {public ListNode middleNode(ListNode head) {ListNode fast = head;ListNode slow = head;while(fast!=null&&fast.next!=null){slow = slow.next;fast = fast.next.next;}return slow;}
}

876. 链表的中间结点相关推荐

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

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

  2. LeedCode篇:876. 链表的中间结点

    876. 链表的中间结点 题目: 解题思路: 源码 踩坑点: 题目: 解题思路: 因为要找中间节点,所以用快慢指针的方法 源码 struct ListNode* middleNode(struct L ...

  3. LeetCode刷题 876链表的中间结点

    876. 链表的中间结点 难度简单550收藏分享切换为英文接收动态反馈 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[ ...

  4. [C题目]力扣876. 链表的中间结点

    876. 链表的中间结点 - 力扣(LeetCode)  方法一:计算结点个数count,挪动count/2次就是题目要求的结点. struct ListNode* middleNode(struct ...

  5. LeetCode Java刷题笔记—876. 链表的中间结点

    876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点. 简单难度.使用快慢指针即可,快指针fast每次走2步,慢指针slow ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. windows哪些版本可以免费升级win10
  2. (转载)机器学习知识点(十三)吉布斯采样法(Gibbs Sampling)
  3. 程序员刚结婚3天,老婆疑似骗婚?聊天记录曝光,网友:拜金实锤
  4. 用代码的方式增加servlet mapping定义
  5. python向上取整 向下取整
  6. win10一直正在检查更新_教你win10升级更新失败怎么办
  7. lucene6.0 查询语句设置关键字boost值
  8. Seata 单机环境搭建_01
  9. 百度 合肥地区 软件研发工程师 笔试题
  10. Hadoop入门基础教程 Hadoop之单机模式搭建
  11. 界面设计02 - 零基础入门学习Delphi43
  12. linux内核命令行解析
  13. 软考 系统架构设计师 2009-2018年英语翻译及重点词汇
  14. 【论文笔记】Image Tampering Localization Using a Dense Fully Convolutional Network
  15. CDD数据库文件制作(二)——DTC配置
  16. NYOJ-845-无主之地1-2013年11月3日00:08:18
  17. 怎么压缩word文档大小?
  18. 解决 Windows系统 快捷方式 图标 变成 白色方块
  19. 5、基于51单片智能手环设计心率计蓝牙app计步器温湿度设计
  20. qq浏览器打开word 技术原理_无需安装阅读器,PDF还可以这样打开,涨姿势了

热门文章

  1. 用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...
  2. php生成txt文件_php 批量生成html,txt文件的实现代码
  3. JavaScript常用工具类整理(总结版)
  4. java 实现excel样式设置(居中、字体、大小、换行、合并行,列宽、指定特定字符串样式等)
  5. 如何查看mysql的gtid_汇总丨MySQL GTID技术点,看这一篇就够了!
  6. 华为硬件工程师社招机考题库_干货:2016年华为中兴硬件工程师笔试题目与经验...
  7. vue-cli使用swiper4在ie以及safari报错
  8. python selenium 判断元素是否可见
  9. Java实现并发线程中线程范围内共享数据
  10. 简单利用HTTP中的PUT协议拿下SHELL