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 小时前
接口幂等性(Idempotency)
java
Hero | 柒1 小时前
JAVA反射机制
java·spring·反射
j***63082 小时前
Springboot项目中线程池使用整理
java·spring boot·后端
likuolei2 小时前
Eclipse 创建 Java 接口
java·数据库·eclipse
q***54752 小时前
Spring Boot 经典九设计模式全览
java·spring boot·设计模式
a***56062 小时前
Spring Boot接收参数的19种方式
java·spring boot·后端
程序喵大人2 小时前
推荐个C++高性能内存分配器
开发语言·c++·内存分配
liu****2 小时前
27.epoll(三)
服务器·开发语言·网络·tcp/ip·udp
福尔摩斯张2 小时前
Axios源码深度解析:前端请求库设计精髓
c语言·开发语言·前端·数据结构·游戏·排序算法