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;
    }
相关推荐
眠りたいです15 小时前
现代C++:C++11并发支持库
开发语言·c++·多线程·c++11·c++并发支持库
小灰灰搞电子15 小时前
Rust可以取代C++么?
开发语言·c++·rust
Swizard15 小时前
别再只会算直线距离了!用“马氏距离”揪出那个伪装的数据“卧底”
python·算法·ai
cat三三15 小时前
java之异常
java·开发语言
奇树谦15 小时前
【Qt实战】实现图片缩放、平移与像素级查看功能
开发语言·qt
浙江第二深情15 小时前
前端性能优化终极指南
java·maven
我命由我1234515 小时前
Python Flask 开发问题:ImportError: cannot import name ‘Markup‘ from ‘flask‘
开发语言·后端·python·学习·flask·学习方法·python3.11
wjs202415 小时前
Go 语言指针
开发语言
flashlight_hi15 小时前
LeetCode 分类刷题:199. 二叉树的右视图
javascript·算法·leetcode