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;
    }
相关推荐
Nil2082 分钟前
leetcode 24两两交换链表中的节点
算法·leetcode·链表
曹牧3 分钟前
C#:函数参数指定默认值
开发语言·c#
.格子衫.14 分钟前
033动态规划之状态压缩DP——算法备赛
算法·动态规划
ysa05103022 分钟前
c++常用自带函数用法与注意
c++·笔记·算法
AAA@峥41 分钟前
Python 基础开篇:认识 Python、版本选择、环境部署与首个 HelloWorld
开发语言·python
caimouse1 小时前
ReactOS 图形系统分析(47):GDI 批处理 — gdibatch.c
c语言·开发语言
qq21084629531 小时前
在python中什么是 self 和 cls?
开发语言·前端·python
杨充2 小时前
05.多用组合和少继承
开发语言·bash
带多刺的玫瑰2 小时前
Leecode#4刷题之寻找两个正序数组的中位数
java·前端·算法