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;
    }
相关推荐
Darkwanderor16 小时前
数据结构——ST表和RMQ问题
数据结构·c++·动态规划·st表·rmq问题
凸头16 小时前
美团Leaf发号器
java
是梦终空11616 小时前
模板编译期机器学习
开发语言·c++·算法
SmartBrain16 小时前
基于 Spring AI 构建多智能体协作系统(高级版)
java·人工智能·spring
艾莉丝努力练剑16 小时前
文件描述符fd:跨进程共享机制
java·linux·运维·服务器·开发语言·c++
工藤新一¹16 小时前
《操作系统》第一章(1)
java·服务器·前端
killer Curry16 小时前
Polar CTF PWN 简单(1)(持续更新)
笔记·python·算法
Han.miracle16 小时前
Lombok 构造相关核心注解全解析
java·linux·算法
Java面试题总结16 小时前
2026最新Java八股文(完整版)
java·开发语言·jvm·数据库·java面试·java八股文