【Java 数据结构】链表的中间结点

devtools/2024/12/28 4:18:01/

 🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

题目出处:876. 链表的中间结点 - 力扣(LeetCode)

1. 题目

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

示例 1:

输入:head = [1,2,3,4,5]
输出:[3,4,5]
解释:链表只有一个中间结点,值为 3 。

示例 2:

输入:head = [1,2,3,4,5,6]
输出:[4,5,6]
解释:链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

2. 解析

2.1 普通方法

  • 可以看到只需要头指针向后走整个链表的一半长度即可找到目标节点

2.2 快慢节点方法

  •  定义两个节点,快节点(fast),慢节点(slow),快节点一次运动两次,慢节点一次运动一次,当快节点到头后,慢节点就是中间节点
  • 原理:路程一样,速度 2 倍,一个运动完,另一个在中间

3. 代码实现

 3.1 普通方法

java">class Solution {public ListNode middleNode(ListNode head) {if (head == null) return null;ListNode ret = head;int count = 0;while (ret != null) {count++;ret = ret.next;}count /= 2;ret = head;while (count != 0) {ret = ret.next;count--;}return ret;}
}

 3.2 快慢节点方法

java">class Solution {public ListNode middleNode(ListNode head) {if (head == null) return null;ListNode fast = head;ListNode slow = head;while (fast != null || fast.next != null) {fast = fast.next.next;slow = slow.next;}return slow;}
}

4. 小结

以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持


http://www.ppmy.cn/devtools/146008.html

相关文章

Effective C++ 条款 09:绝不在构造和析构过程中调用 virtual 函数

文章目录 条款 09:绝不在构造和析构过程中调用 virtual 函数关键原则示例问题:构造期间调用 virtual 函数设计建议总结 条款 09:绝不在构造和析构过程中调用 virtual 函数 关键原则 避免构造或析构期间调用 virtual 函数 在构造函数或析构函…

力扣11. 盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 提示&…

【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡

32通道(24bits)高精度终端采集核心板卡 采用 EP4CE115F29I7 型号的 FPGA ,是一款 高精度,多通道动态信号采集核心板,核心 板主要分为 2 块板卡,一块为通讯板,一块 为采集板,均有 …

华为云鸿蒙应用入门级开发者认证考试题库(理论题和实验题)

注意:考试链接地址:华为云鸿蒙应用入门级学习认证_华为云鸿蒙应用入门级开发者认证_华为云开发者学堂-华为云 当前认证打折之后是1元,之后原价700元,大家尽快考试!考试题库里面答案不一定全对,但是可以保证…

Vue项目中env文件的作用和配置

在实际项目的开发中,我们一般会经历项目的开发阶段、测试阶段和最终上线阶段,每一个阶段对于项目代码的要求可能都不尽相同,那么我们如何能够游刃有余的在不同阶段下使我们的项目呈现不同的效果,使用不同的功能呢?这里…

SpringAI人工智能开发框架006---SpringAI多模态接口_编程测试springai多模态接口支持

可以看到springai对多模态的支持. 同样去创建一个项目 也是跟之前的项目一样,修改版本1.0.0 这里 然后修改仓库地址,为springai的地址 然后开始写代码

Android studio开启虚拟机闪退、闪屏、死机、电脑重启

Android studio开启android虚拟机出现闪退、闪屏、死机、电脑重启等问题,在网上搜了很多方法并没有解决这个问题,网上方法基本上都是错误的 在windows上使用 Android 仿真器创建虚拟设备之前,需要打开 Hyper-V 和 Windows Hypervisor Platfor…

阿里云人工智能ACA(五)——深度学习基础

一、深度学习概述 1. 深度学习概念 1-1. 深度学习基本概念 深度学习是机器学习的一个分支基于人工神经网络(模仿人脑结构)通过多层网络自动学习特征能够处理复杂的模式识别问题 1-2. 深度学习的优点与缺点 优点 强大的特征学习能力可以处理复杂问题…