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;
    }
相关推荐
gihigo19983 分钟前
使用MATLAB绘制3D心形图和玫瑰花图案
开发语言·matlab·3d
世洋Blog3 分钟前
算法导论-分治法和合并(Merge)排序
算法
柠檬叶子C7 分钟前
【Python】解决 No module named ‘imp‘ 问题 | Python3 中废弃的 imp 模块
开发语言·python
源代码•宸8 分钟前
Golang基础语法(go语言结构体、go语言数组与切片、go语言条件句、go语言循环)
开发语言·经验分享·后端·算法·golang·go
我想吃烤肉肉8 分钟前
wait_until=“domcontentloaded“ 解释
开发语言·前端·javascript·爬虫·python
霍田煜熙13 分钟前
【无标题】
java
l1t14 分钟前
快速加载CSV文件到数据库的工具pg_csv_loader
数据库·算法
无忧智库15 分钟前
深度拆解:某大型医院“十五五”智慧医院建设方案,如何冲刺互联互通五级乙等?(附技术架构与实施路径)
java·数据库·架构
木木木一18 分钟前
Rust学习记录--C8 常用的集合
开发语言·学习·rust