LeetCode 876

题目LeetCode 876

解法一:快慢指针

注意while循环条件,以链表(1,2,3,4,null)为例:

  • 当条件为fast != null && fast.next != null时,若链表元素为偶数个,则返回中间的后一个节点(3)
  • 当条件为fast.next != null && fast.next.next != null时,若链表元素为偶数个,则返回中间的前一个节点(2)

若链表元素为奇数个,则都返回中间节点

java 复制代码
    public ListNode middleNode(ListNode head) {
        ListNode slow = head, fast = head;
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }
相关推荐
骑士雄师几秒前
学生管理系统python版本比对
开发语言·python
basketball6161 分钟前
C++ 的 const 相关知识点总结
开发语言·c++
凯瑟琳.奥古斯特6 分钟前
信号分类与特性解析
java·开发语言·职场和发展
y = xⁿ9 分钟前
20天速通LeetCodeday17:一维动态规划
算法
JAVA面经实录91710 分钟前
JVM 性能监控 + 全链路分析实战 + 性能优化(完整版)
java·jvm
sheeta199810 分钟前
LeetCode 每日一题笔记 日期:2026.05.17 题目:1306. 跳跃游戏 III
笔记·leetcode
bnmoel13 分钟前
数据结构深度剖析栈与队列:结构、边界实现与进出操作全解析
c语言·数据结构·算法··队列
WL_Aurora15 分钟前
Python 算法基础篇之查找算法(一):顺序查找、二分查找与插值查找
开发语言·python·算法
号码认证服务16 分钟前
小米、OPPO、VIVO手机支持号码认证显示公司名吗?
java·服务器·网络·经验分享·智能手机·云计算·php
阿文的代码库21 分钟前
对于C++中push_back的原理介绍与分析
开发语言·c++