876. 链表的中间结点
给定一个头结点为 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. 链表的中间结点相关推荐
- LeetCode Algorithm 876. 链表的中间结点
876. 链表的中间结点 Ideas 这题直接秒杀吧,快慢指针,快指针一次走两步,慢指针一次走一步,快指针到头之后慢指针正好到链表中间. Code C++ class Solution {public ...
- LeedCode篇:876. 链表的中间结点
876. 链表的中间结点 题目: 解题思路: 源码 踩坑点: 题目: 解题思路: 因为要找中间节点,所以用快慢指针的方法 源码 struct ListNode* middleNode(struct L ...
- LeetCode刷题 876链表的中间结点
876. 链表的中间结点 难度简单550收藏分享切换为英文接收动态反馈 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[ ...
- [C题目]力扣876. 链表的中间结点
876. 链表的中间结点 - 力扣(LeetCode) 方法一:计算结点个数count,挪动count/2次就是题目要求的结点. struct ListNode* middleNode(struct ...
- LeetCode Java刷题笔记—876. 链表的中间结点
876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点. 简单难度.使用快慢指针即可,快指针fast每次走2步,慢指针slow ...
- 每日一道leetcode(python)876. 链表的中间结点
每日一道leetcode(python)876. 链表的中间结点 2021-08-19 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1 ...
- JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】
题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式: ...
- 【LeetCode题目详解】(二)206.反转链表、876.链表的中间结点
目录 一.力扣第206题:反转链表 1.思路一 2.思路二 二.力扣第876题:链表的中间结点 1.思路一 2.思路二 总结 一.力扣第206题:反转链表 题目链接:206. 反转链表 - 力扣(Le ...
- LeetCode 876——链表的中间结点
1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形 ...
- Leetcode 876. 链表的中间结点 (每日一题 20210918)
给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) ...
最新文章
- windows哪些版本可以免费升级win10
- (转载)机器学习知识点(十三)吉布斯采样法(Gibbs Sampling)
- 程序员刚结婚3天,老婆疑似骗婚?聊天记录曝光,网友:拜金实锤
- 用代码的方式增加servlet mapping定义
- python向上取整 向下取整
- win10一直正在检查更新_教你win10升级更新失败怎么办
- lucene6.0 查询语句设置关键字boost值
- Seata 单机环境搭建_01
- 百度 合肥地区 软件研发工程师 笔试题
- Hadoop入门基础教程 Hadoop之单机模式搭建
- 界面设计02 - 零基础入门学习Delphi43
- linux内核命令行解析
- 软考 系统架构设计师 2009-2018年英语翻译及重点词汇
- 【论文笔记】Image Tampering Localization Using a Dense Fully Convolutional Network
- CDD数据库文件制作(二)——DTC配置
- NYOJ-845-无主之地1-2013年11月3日00:08:18
- 怎么压缩word文档大小?
- 解决 Windows系统 快捷方式 图标 变成 白色方块
- 5、基于51单片智能手环设计心率计蓝牙app计步器温湿度设计
- qq浏览器打开word 技术原理_无需安装阅读器,PDF还可以这样打开,涨姿势了
热门文章
- 用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...
- php生成txt文件_php 批量生成html,txt文件的实现代码
- JavaScript常用工具类整理(总结版)
- java 实现excel样式设置(居中、字体、大小、换行、合并行,列宽、指定特定字符串样式等)
- 如何查看mysql的gtid_汇总丨MySQL GTID技术点,看这一篇就够了!
- 华为硬件工程师社招机考题库_干货:2016年华为中兴硬件工程师笔试题目与经验...
- vue-cli使用swiper4在ie以及safari报错
- python selenium 判断元素是否可见
- Java实现并发线程中线程范围内共享数据
- 简单利用HTTP中的PUT协议拿下SHELL