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;
    }
相关推荐
zmzb0103几秒前
C++课后习题训练记录Day42
开发语言·c++·算法
CoovallyAIHub3 分钟前
MAR-YOLOv9:革新农业检测,YOLOv9的“低调”逆袭
深度学习·算法·计算机视觉
库库林_沙琪马4 分钟前
1、Hi~ SpringBoot
java·spring boot·后端
不会编程的小寒5 分钟前
C / C++ 面试题
java·开发语言
dragoooon346 分钟前
[优选算法专题十.哈希表 ——NO.55~57 两数之和、判定是否互为字符重排、存在重复元素]
数据结构·散列表
坐吃山猪7 分钟前
Electron02-Hello
开发语言·javascript·ecmascript
BBB努力学习程序设计7 分钟前
Java输入输出:让程序能与世界“对话”
java
Mr Lee_9 分钟前
Smali 文件生成dex装箱算法整合
开发语言·python·算法
电饭叔9 分钟前
《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之一(Luhn算法解释)
android·java·python
阿宁又菜又爱玩10 分钟前
Web后端开发入门
java·spring boot·后端·web