链表的中间结点

  • 链表的中间结点 题1
  • 链表的中间结点 题2
  • 链表的中间结点 题3
  • 链表的中间结点 题4

链表的中间结点 题1

876. 链表的中间结点
给定一个头结点为 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() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/

1.如果奇数返回中点,如果是偶数返回下中点

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

链表的中间结点 题2

2.如果是奇数返回中点,如果是偶数返回上中点

示例 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]
输出:此列表中的结点 3 (序列化形式:[3,4,5])
由于该列表有两个中间结点,值分别为 3 和 4,我们返回第一个结点。

```java
class Solution {public ListNode midOrUpMidNode(ListNode head) {if(head == null || head.next == null || head.next.next == null) return head;ListNode slow = head.next;ListNode fast = head.next.next;while(fast.next != null && fast.next.next != null){slow = slow.next;fast = fast.next.next;}return slow;}
}

链表的中间结点 题3

3.奇数返回中点前一个,偶数返回上中点的前一个

示例 1:

输入:[1,2,3,4,5]
输出:此列表中的结点 2 (序列化形式:[2,3,4])
返回的结点值为 2 。 (测评系统对该结点序列化表述是 [2,3,4])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.val = 2, ans.next.val = 3, ans.next.next.val = 4, 以及 ans.next.next.next = 5
示例 2:

输入:[1,2,3,4,5,6]
输出:此列表中的结点 2 (序列化形式:[3,4,5])
由于该列表有两个中间结点,值分别为 3 和 4,我们返回第一个结点的上一个结点2。

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

链表的中间结点 题4

4.奇数返回中点前一个偶数返回下中点前一个

示例 1:

输入:[1,2,3,4,5]
输出:此列表中的结点 2 (序列化形式:[2,3,4])
返回的结点值为 2 。 (测评系统对该结点序列化表述是 [2,3,4])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.val = 2, ans.next.val = 3, ans.next.next.val = 4, 以及 ans.next.next.next = 5
示例 2:

输入:[1,2,3,4,5,6]
输出:此列表中的结点 3 (序列化形式:[3,4,5])
由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点的上一个结点3。

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

876. 链表的中间结点【我亦无他唯手熟尔】相关推荐

  1. 237. 删除链表中的节点【我亦无他唯手熟尔】

    237. 删除链表中的节点 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保证需要删除的节点 不 ...

  2. 136. 只出现一次的数字【我亦无他唯手熟尔】

    136. 只出现一次的数字 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素.说明:你的算法应该具有线性时间复杂度. 你 ...

  3. 1929. 数组串联【我亦无他唯手熟尔】

    1929. 数组串联 题目 题解 题目 给你一个长度为 n 的整数数组 nums .请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < ...

  4. 438. 找到字符串中所有字母异位词【我亦无他唯手熟尔】

    438. 找到字符串中所有字母异位词 438. 找到字符串中所有字母异位词 题解 官方 438. 找到字符串中所有字母异位词 难度 中等 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 ...

  5. 786. 第 K 个最小的素数分数【我亦无他唯手熟尔】

    786. 第 K 个最小的素数分数 786. 第 K 个最小的素数分数 题解 786. 第 K 个最小的素数分数 难度 困难 给你一个按递增顺序排序的数组 arr 和一个整数 k .数组 arr 由 ...

  6. 樊登读书搞定读后感_读书笔记/读后感《读懂一本书,樊登读书法》——无他唯手熟尔...

    当我们在生活及工作中遇到问题的时候,通常会请教同事或者上网搜索解决方法,但是我们忽略了另外一个解决问题的途径,那就是通过阅读书籍积累知识.为什么大家并不习惯于阅读书籍呢,那是因为大家认为眼前遇到问题最 ...

  7. 卖油翁 欧阳修 无他,但手熟尔

    陈康肃公尧咨善射,当世无双,公亦以此自矜.尝射于家圃,有卖油翁释担而立,睨之,久而不去.见其发矢十中八九,但微颔之. 康肃问曰:"汝亦知射乎?吾射不亦精乎?"翁曰:"无他 ...

  8. 编程思想:我亦无他,唯手熟尔

    目录 一.编程思想三大定理 二.编程思想四大特性 三.做到高内聚,低耦合 (一)内聚 (二)耦合 一.编程思想三大定理 (1)思路分析,化繁为简:将需求拆成多个步骤实现,先完成基本功能和大致框架,在往 ...

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

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

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

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

最新文章

  1. c++控制台应用每一列数据如何对齐_Python数据分析第五节 pandas入门
  2. Apr.2010 Microsoft MVP连任
  3. poj 2923(状态压缩dp)
  4. python画动态爱心-【Python】五分钟画一条动态心形曲线~
  5. 03:Poor Herobrine 直接插入排序
  6. 转载.Android HAL实现的三种方式(1) - 基于JNI的简单HAL设计
  7. 任意两点间的最短路径
  8. 吃是为了肉体,喝是为了灵魂
  9. maven私服的使用
  10. java对接金蝶接口
  11. java多线程5大框架_实现 Java 多线程并发控制框架
  12. 内嵌式串口转WiFi模块
  13. Oracle函数——COALESCE
  14. List中存放list
  15. MSP430F415IRTDR
  16. 雷神 911X 猎荒者评测
  17. 【笔记】《iOS开发进阶-唐巧》
  18. “探月计划”来袭,美国米德天文望远镜助孩子观月赏月
  19. AI教程:自定义参考线
  20. [开心幽默]一对北京情侣是如何吵架的 !(暴笑)

热门文章

  1. linux防护勒索病毒的补丁,抵御Petya勒索病毒的最新办法
  2. 涉密计算机怎么更新补丁,当需要将病毒库、系统补丁程序等导入到涉密信息系统时采用什么方式...
  3. 计算机大一新生的体验
  4. NOIP模拟19/07/22
  5. unity 简易的小地图导航
  6. 微信小程序之如何注册微信小程序
  7. [编程题]雀魂启动!(java实现)
  8. matlab 读取pts_matlab读取tiff卫星遥感图像和地理信息并转化为点云
  9. 叶俊在深圳天长地久集团培训会上谈到“唤醒沟通力与工匠精神”
  10. 担任电气工程师,在软件开发方面建立成功的职业生涯