LeetCode 876. 链表的中间结点

题目描述:

给你单链表的头结点 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 ,返回第二个结点。

代码:

复制代码
//奇数:p1走一步,p2走两步,p2.next!=null
    //偶数:p1走一步,p2走两步,p2!=null
    public ListNode middleNode(ListNode head){
        ListNode p1=head;
        ListNode p2=head;
        while(p2!=null&&p2.next!=null){//偶数:p2!=null(短路运算符写在前面,奇数:p2.next!=null
            p1=p1.next;
            p2=p2.next.next;
        }
        return p1;
    }
相关推荐
@淡 定几秒前
Java内存模型(JMM)详解
java·开发语言
谈笑也风生1 分钟前
经典算法题型之复数乘法(二)
开发语言·python·算法
智算菩萨5 分钟前
强化学习从单代理到多代理系统的理论与算法架构综述
人工智能·算法·强化学习
lhn6 分钟前
大模型强化学习总结
算法
Gigavision20 分钟前
MMPD数据集 最新Mamba算法 源码+数据集 下载方式
算法
czhc114007566324 分钟前
C# 1221
java·servlet·c#
黄俊懿26 分钟前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——全局事务的回滚
java·后端·spring·spring cloud·微服务·架构·架构师
Xの哲學29 分钟前
Linux UPnP技术深度解析: 从设计哲学到实现细节
linux·服务器·网络·算法·边缘计算
歌_顿29 分钟前
GPT 系列学习总结(1-3)
算法
派大鑫wink32 分钟前
【Day12】String 类详解:不可变性、常用方法与字符串拼接优化
java·开发语言