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;
    }
相关推荐
进击的程序猿~1 分钟前
Go 并发底层原理面试学习指南
开发语言·面试·golang
脚踏实地皮皮晨6 分钟前
002002002_DepandencyObject类2
开发语言·windows·算法·c#·visual studio
冰心孤城18 分钟前
Excel: xls与xlsx格式转换排坑指南
java·前端·excel
自强的小白19 分钟前
maven高级(聚合和私服)以及私服的上传和下载
java·maven
唐青枫24 分钟前
Java ReentrantLock 实战详解:比 synchronized 更灵活的可重入锁
java
练习时长一年38 分钟前
@SneakyThrows注解
开发语言
我的xiaodoujiao42 分钟前
快速学习Python基础知识详细图文教程14--模块
开发语言·python·学习·测试工具
NoteStream1 小时前
【c语言基础】C语言常见概念
c语言·开发语言·编辑器
吃好睡好便好1 小时前
MATLAB中图像的线性变换
开发语言·图像处理·学习·计算机视觉·matlab
charlie1145141911 小时前
Cinux —— 给物理内存建账本:bitmap 物理内存管理器
开发语言·c++·操作系统·开源项目