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学习通3 分钟前
JAVA多线程(8.0)
java·开发语言
不当菜虚困6 分钟前
JAVA设计模式——(七)代理模式
java·设计模式·代理模式
MoonBit月兔10 分钟前
双周报Vol.70: 运算符重载语义变化、String API 改动、IDE Markdown 格式支持优化...多项更新升级!
ide·算法·哈希算法
How_doyou_do14 分钟前
树状数组底层逻辑探讨 / 模版代码-P3374-P3368
数据结构·算法·树状数组
joke_xiaoli15 分钟前
tomcat Server 连接服务器 进展
java·服务器·tomcat
陶然同学25 分钟前
RabbitMQ全栈实践手册:从零搭建消息中间件到SpringAMQP高阶玩法
java·分布式·学习·rabbitmq·mq
shanzhizi28 分钟前
springboot入门-controller层
java·spring boot·后端
小鹿鹿啊34 分钟前
C语言编程--14.电话号码的字母组合
c语言·开发语言·算法
cloues break.36 分钟前
C++初阶----模板初阶
java·开发语言·c++
陌殇殇1 小时前
Java使用IText7动态生成带审批文本框的PDF文档
java·pdf