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;
    }
相关推荐
Han.miracle2 分钟前
算法--003快乐数
数据结构·算法·快乐数
镜花水月linyi10 分钟前
1.5w字ReentrantLock 深度解析
java·后端·程序员
程序员西西15 分钟前
Spring Boot3 分页操作全解析:从基础到实战
java·后端·程序员
数据门徒19 分钟前
《人工智能现代方法(第4版)》 第4章 复杂环境中的搜索 学习笔记
人工智能·算法
Boop_wu21 分钟前
[Java EE] 网络原理(1)
java·网络·java-ee
永远都不秃头的程序员(互关)22 分钟前
查找算法深入分析与实践:从线性查找到二分查找
数据结构·c++·算法
Sunsets_Red23 分钟前
二项式定理
java·c++·python·算法·数学建模·c#
菜鸟‍23 分钟前
【论文学习】SAMed-2: 选择性记忆增强的医学任意分割模型
人工智能·学习·算法
Mcband24 分钟前
【Spring Boot】Interceptor的原理、配置、顺序控制及与Filter的关键区别
java·spring boot·后端
业精于勤的牙25 分钟前
模拟退火算法
算法·机器学习·模拟退火算法