LeetCode-第876题-链表的中间结点

1.题目描述

给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。

2.样例描述

3.思路描述

创建两个快慢指针 slow , fast ,起始共同指向头节点,slow 每次走一步,fast 每次走两步,当 fast 为空或 fast 的下一个结点为空时,slow  即是中间节点的位置。由于 fast 每次走两步,slow 每次走一步,slow 总是落后 fast 整体一半的长度最终 slow 理应为中间结点。

4.代码展示 

class Solution {
    public ListNode middleNode(ListNode head) {
        //快慢指针法:定义两个指针,快指针每次走两位,慢指针每次走移位,当快指针所在的位置或下一位为null时,慢指针的位置是链表的中点
        ListNode fast = head;
        ListNode slow = head;
        //遍历链表,当当快指针所在的位置或下一位不为null时,执行循环
        while(fast !=null && fast.next != null)
        {
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }
}

相关推荐

  1. 【力扣刷练习】876. 中间

    2024-02-06 06:50:02       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 06:50:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 06:50:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 06:50:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 06:50:02       18 阅读

热门阅读

  1. 与AI对话:编写高效Prompt的指南

    2024-02-06 06:50:02       36 阅读
  2. MongoDB聚合:$listSampledQueries

    2024-02-06 06:50:02       31 阅读
  3. TypeScript:将arraybuffer类型数据转换为json

    2024-02-06 06:50:02       32 阅读
  4. 力扣:131. 分割回文串

    2024-02-06 06:50:02       30 阅读
  5. Sping常见注解使用方法----持续更新中20240116

    2024-02-06 06:50:02       35 阅读
  6. fastapi mysql 开发restful 3

    2024-02-06 06:50:02       29 阅读
  7. linux系统mysql数据库使用keepalived做高可用

    2024-02-06 06:50:02       27 阅读