LeetCode.876-链表的中间节点(Middle of the Linked List)

零基础玩转IndexTTS2:5分钟搭建个人语音克隆工具(支持B站同款情感语音) 本文详细介绍了如何零基础使用IndexTTS2快速搭建个人语音克隆工具,支持B站同款情感语音。IndexTTS2作为自回归零样本TTS系统,突破传统技术限制,实现精准时长控制和丰富情感表达。通过HuggingFace在线演示,用户可轻松克隆音色并调节情感参数,适用于自媒体配音、有声书朗读等场景。 阅读详情

这是悦乐书的第337次更新,第361篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第206题(顺位题号是876)。给定具有头节点的非空单链表,返回链表的中间节点。如果有两个中间节点,则返回第二个中间节点。例如:

输入:[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。


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

注意:

  • 给定列表中的节点数将介于1和100之间。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

借助数组来解。

遍历链表中的点,存入一个List中,取List的中间元素即可。

此解法的时间复杂度是O(N),空间复杂度是O(N)。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode middleNode(ListNode head) {
        List<ListNode> list = new ArrayList<ListNode>();
        while (head != null) {
            list.add(head);
            head = head.next;
        }
        return list.get(list.size()/2);
    }
}

03 第二种解法

使用快慢指针来解。

此题也可以理解为数学中的相遇问题,一个以正常速度前进的指针,一个以2倍速度前进的快指针,在快指针指向链表结尾处时,慢指针肯定处在链表的中间位置。

此解法的时间复杂度是O(N),空间复杂度是O(1)。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode middleNode(ListNode head) {
        ListNode fast = head, slow = head;
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }
}

04 小结

算法专题目前已连续日更超过六个月,算法题文章206+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

IEM模型,地表粗糙度模拟 利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟 立即下载

相关推荐

【ROS2】Arduino系列之机器人底盘实现

介绍ros中提供的一个已经封装了的模块: ros_arduino_bridge,该模块由下位机驱动和上位机控制两部分组成,通过该模块可以更为快捷、方便的实现自己的机器人平台

guilin 1483

Leetcode:876链表的中间节点

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = 3, ans.next.v...

zw_ss 652

MATLAB打开.m文件乱码解决办法

Matlab打开.m文件出现中文乱码问题,是因为Matlab存在两种编码格式:GBK和UTF-8,而不同版本的Matlab编码格式可能不统一,因此在不同版本的Matlab打开文件,由于编码格式的改变,会导致注释乱码。 1.查看你的Matlab的文件编码方式,在Matlab的命令行窗口输入feature('locale') ,如下图,可以看到默认编码为GBK,那问题就变成了将Matlab的文件编码方式GBK修改成UTF-8; 2.找到你的Matlab安装目录bin文件夹下的lcdata_utf.

zhugby的博客 4万+

锂电行业质量回溯系统的ZFS存储解决方案

在工业制造领域,数据存储可靠性是质量管理的基石。ZFS文件系统通过校验和机制和Copy-on-Write技术,从根本上解决了传统存储系统的数据静默损坏问题,确保每个数据块的完整性。这种工业级可靠性特别适合锂电池生产场景,其中工艺参数和检测数据的长期可追溯性直接关系到产品安全。结合智能分层存储策略,系统能自动将高频访问的热数据(如最新检测结果)缓存在SSD层,而将冷数据(如历史归档)存储在机械硬盘,实现性能与成本的平衡。针对行业合规要求,WORM(一次写入多次读取)功能从硬件到应用层构建防篡改体系,满足欧盟电

weixin_34160277的博客 426

SPSS实战:5步搞定多指标联合诊断的ROC曲线分析(附Logistic回归教程)

本文详细介绍了如何使用SPSS软件进行多指标联合诊断的ROC曲线分析。通过5个实战步骤,从数据准备、二元Logistic回归建模生成综合预测概率,到绘制并比较单指标与联合模型的ROC曲线,帮助临床研究者有效整合多个诊断指标,提升模型判别能力(AUC),实现诊断效能的优化。

mqtt6iot的博客 1422

RV1126 MIPI CSI-2驱动RGB888图像采集的V4L2实战解析

本文详细解析了在RV1126平台上通过MIPI CSI-2接口采集RGB888格式图像的完整V4L2实战流程。核心内容包括设备树(DTS)配置、内核驱动适配、Media Controller链路调试,以及使用v4l2-ctl工具进行图像抓取与验证的方法,旨在帮助开发者打通从硬件连接到稳定采集RGB888图像数据的关键环节。

weixin_29161719的博客 166

LeetCode 876 题解

  876. Middle of the Linked List 题目大意:返回一个list中间的元素,如果有两个则返回第二个; 解题思路:利用两个指针,一个步长为1一个为2,当2走到尾端,第一个走到的就是答案; class Solution { public: ListNode* middleNode(ListNode* head) { if(head==NUL...

u011439455的博客 925

手把手教你学simulink实例--基于Simulink的船舶动力装置性能评估与仿真

船舶动力装置是船舶运行的核心系统,其性能直接影响船舶的安全性、经济性和环保性。基于MATLAB/Simulink平台进行船舶动力装置性能评估与仿真是研究和优化船舶动力系统的重要手段。通过建模与仿真,可以分析动力装置在不同工况下的性能表现,并验证控制策略的有效性。本项目旨在构建一个完整的船舶动力装置性能评估与仿真模型,包括发动机建模、传动系统建模、负载分析以及性能评估模块,并通过仿真分析其动态响应和性能指标。

MHD0815的博客 972

【LeetCode】11. 盛最多水的容器(Middle)

给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 思路: 方法一:

然后微微笑的博客 249

SAP 实施:Waterfall vs. Agile —— 一场“结构性矛盾“的深刻比较先说结论:在 SAP 世界里,这从来不是“谁更好“的宗教问题,而是“你的项目 DNA 是什么“的战略选择。​

SAP 实施:Waterfall vs. Agile —— 一场"结构性矛盾"的深刻比较 先说结论:在 SAP 世界里,这从来不是"谁更好"的宗教问题,而是"你的项目 DNA 是什么"的战略选择。​ SAP 早已用 SAP Activate​ 给出了官方态度——它不是纯 Agile,也不是回头去搞旧 Waterfall,而是一个带质量门的混合架构。 1. 先回到本质:两者解决的是不同维度的风险 维度 Waterfall(传统 ASAP 路线)​ Agile(SCRUM/Kanban 式迭代)​

金牌架构师 336

Open Dynamics Engine(ODE)物理引擎基础教程(I)——特点介绍

下一教程 Open Dynamics Engine(ODE)物理引擎基础教程(II)——相关概念 (在这一教程中将学习刚体、关节、碰撞的概念在ODE中的特点) 本文结构引言介绍特点使用ODE总结 引言 本文翻译自ODE官方教程英文版,有些地方增加了自己的理解。这一节介绍ODE的相关概念。 基础教程英文原版链接【http://ode.org/wiki/index.php?title=Manua...

腿足机器人领域 1676

Leetcode 876. Middle of the Linked List(链表的中间节点)

Middle of the Linked List Given a non-empty, singly linked list with head node head, return a middle node of linked list. If there are two middle nodes, return the second middle node. /** * Definit...

秀秀的奇妙旅行 277

【网络安全 | 渗透工具】Hydra安装使用详细教程

Hydra,也称九头蛇,是一款非常强大的暴力破解工具(密码能否被破解关键在于字典是否足够强大),支持多种服务协议的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务,支持Linux、Windows、Mac平台安装。该工具支持以下协议的爆破:Hydra在kali中自带,这里介绍windows下的安装方法。zip下载地址:https://gitcode.com/maaaaz/thc-hydra-windows/tree/master下载完成后解压: 再将thc-hydra-windows-mast

等风来 9200

Leetcode876.Middle of the Linked List链表的中间节点

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。   示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = 3, ans....

lMonster81 328

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java相遇问题_LeetCode.876-链表的中间节点(Middle of the Linked List)

这是悦乐书的第337次更新,第361篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第206题(顺位题号是876)。给定具有头节点的非空单链表,返回链表的中间节点。如果有两个中间节点,则返回第二个中间节点。例如:输入:[1,2,3,4,5]输出:此列表中的节点3(序列化:[3,4,5])返回的节点的值为3.(该节点的判断序列化为[3,4,5])。请注意,我们返回了一个Lis...

weixin_33728584的博客 236

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode [链表] 876. Middle of the Linked List (C++和Python实现)

876. Middle of the Linked List [难度:简单] 【题目】 Given a non-empty, singlylinked list with head nodehead, returnamiddle node of linked list. If there are two middle nodes, return the second middle n...

咸鱼夏の翻身观察记录 443

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Leetcode_C++笔记之876. Middle of the Linked List(链表的中间节点)

注意while循环的条件,fast->next也要非NULL才OK。快慢指针除了做循环检测,还可以做中点检测。

JayShaun的博客 298

链表节点是否为空_【LeetCode-876-Middle of the Linked List】链表的中间节点

明确题意:链表为空是否需要报错(非空输入)链表的类型(单向链表)节点是奇数还是偶数(有奇数有偶数)描述解题思路(根据描述判断解题方法):关键字: 特定位置-中间模式识别: 涉及链表特殊位置的,考虑快慢指针遍历链表: 快指针两倍速度前进,慢指针一倍速度前进快指针到达尾节点时,慢指针位置就是所求的解class ListNode(object): def __init__(self, x):...

weixin_39916520的博客 76

LK876-链表的中间节点(快慢指针)

LK876-链表的中间节点 https://leetcode-cn.com/problems/middle-of-the-linked-list/ 快慢指针 classSolution{ public: ListNode*middleNode(ListNode*head){ if(head==nullptr||head->next==nullptr){ returnhead; } ListNode...

A240428037的博客 108

leetcode876. Middle of the Linked List(寻找链表的中间元素)

题目要求 给一个带有头节点head并且非空的单链表。返回链表的中间节点。 如果有两个中间结点,那么返回第二个。 示例 // Example 1 Input: [1,2,3,4,5] Output: Node 3 from this list (Serialization: [3,4,5]) The returned node has value 3. (The judge's serializa...

爱喝舒化奶的博客 373

Leetcode 876. Middle of the Linked List

Leetcode 876. Middle of the Linked List Given a non-empty, singly linked list with head node head, return a middle node of linked list. If there are two middle nodes, return the second middle n...

u010065754的专栏 508

876. Middle of the Linked List。

Given a non-empty, singly linked list with head node head, return a middle node of linked list. If there are two middle nodes, return the second middle node. Example 1: Input: [1,2,3,4,5] Output: N...

繁城落叶 418

【LeetCode】 876. Middle of the Linked List ——java实现

问题描述 876. 链表的中间结点 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型...

GZY_BUPT的博客 859

[LeetCode] 876. Middle of the Linked List

[LeetCode] 876. Middle of the Linked List Given a non-empty, singly linked list with head node head, return a middle node of linked list. If there are two middle nodes, return the second middle node....

hhthwx的博客 688
上一篇: LeetCode.874-走路机器人模拟(Walking Robot Simulation)
下一篇: LeetCode.884-两句话中不常见的单词(Uncommon Words from Two Sentences)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值