Leetcode 876. 链表的中间结点 快慢指针

原题链接:Leetcode 876. 链表的中间结点

用两个指针 slow 与 fast 一起遍历链表。slow 一次走一步,fast 一次走两步。那么当 fast 到达链表的末尾时,slow 必然位于中间。

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        ListNode* fast=head;
        ListNode* slow=head;
        while(fast!=nullptr && fast->next!=nullptr ){
            fast=fast->next->next;
            slow=slow->next;
        }
        return slow;
    }
};
相关推荐
LYFlied7 分钟前
Vue3虚拟DOM更新机制源码深度解析
前端·算法·面试·vue·源码解读
薛不痒14 分钟前
机器学习算法之集成学习随机森林和贝叶斯
算法·机器学习·集成学习
竹一阁17 分钟前
跟踪导论(十二)——卡尔曼滤波的启动:初始参数的设置
算法·信号处理·雷达·信号与系统
youngee1120 分钟前
hot100-48课程表
算法
kesifan25 分钟前
数据结构线性表
数据结构·算法
leo__52033 分钟前
如何计算一个二维地质模型的表面重力值和重力异常
算法
代码游侠44 分钟前
应用——基于Linux的音乐播放器项目
linux·运维·笔记·学习·算法
tgethe1 小时前
Java 链表(LinkedList)
java·开发语言·链表
智驱力人工智能2 小时前
仓库园区无人机烟雾识别:构建立体化、智能化的早期火灾预警体系 无人机烟雾检测 无人机动态烟雾分析AI系统 无人机辅助火灾救援系统
人工智能·opencv·算法·目标检测·架构·无人机·边缘计算