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;
    }
相关推荐
从琳开始9891 分钟前
优选算法——滑动窗口(概念+解题模板+LeetCode例题讲解)
算法·leetcode·职场和发展
Nil2083 分钟前
leetcode 94二叉树的中序遍历
算法·leetcode·职场和发展
不会就选b7 分钟前
算法日常・每日刷题
算法
一只小小的芙厨14 分钟前
最短路总结
数据结构·算法
paopaokaka_luck18 分钟前
基于springboot3+vue3的文山民族文化资源展示与推广平台(协同过滤算法、Echarts 图形化分析)
java·前端·spring boot·学习·echarts
致Great20 分钟前
OpenAI 又把 Codex 往前推了一步: 以后做 Agent,没必要都造一个聊天框
算法
eralong25 分钟前
Java IO 与 NIO
java·后端
Jesse_EC38 分钟前
我给消息推送加了 Publisher Confirm,然后亲手引入了一个竞态
java
S3rein39 分钟前
JAVA多线程手撕
java·多线程
用户81818706274641 分钟前
第7章 死锁排查实录:jstack定位死锁的完整流程
java·后端