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;
    }
相关推荐
夕除2 分钟前
shizhan--10
java·开发语言
Zhang~Ling6 分钟前
C++ 红黑树封装:myset和mymap的底层实现
开发语言·数据结构·c++·算法
ECT-OS-JiuHuaShan6 分钟前
什么是对和错?——“有针对性定义域的逻辑值的真伪”:认识论终极追问的公理化裁决
数据库·人工智能·算法·机器学习·数学建模
啦啦啦啦啦zzzz7 分钟前
数据结构:堆排序
数据结构·c++·
原来是猿7 分钟前
为什么 C++ 需要区分左值和右值?
开发语言·c++
吴声子夜歌10 分钟前
JVM——并发容器实现原理
java·jvm·并发容器
xier_ran10 分钟前
【infra之路】PagedAttention
java·开发语言
Merlyn1023 分钟前
【栈】155. 最小栈
python·算法
糖果店的幽灵23 分钟前
Spring AI 从入门到精通-结构化输出
java·人工智能·spring
SilentSamsara26 分钟前
NumPy 进阶:广播机制、ufunc 与向量化计算的工程实践
开发语言·python·青少年编程·性能优化·numpy