一、题目
函数原型:
bool hasCycle(struct ListNode *head)
二、算法判断不是环形链表,只需遍历链表找到空结点即可。
判断是环形链表,由于链表是环形的,遍历不会永远不会结束。所以要设置快慢指针,慢指针一次走一步,快指针一次走两步。当两个指针都进入环时,快指针走地比慢指针快,因此快指针总会遇到慢指针。因此,判断是环形链表的条件是慢指针等于快指针。
三、代码
cppbool hasCycle(struct ListNode *head) { struct ListNode *fast=head; struct ListNode *slow=head; while(fast&&fast->next) { fast=fast->next->next; slow=slow->next; if(fast==slow) return true; } return false; }
leetcode:141. 环形链表
南林yan2023-11-08 20:02
相关推荐
冷小鱼11 分钟前
AI Agent的核心算法:自主学习与反思(Self-Reflection / Critique):-)10 小时前
算法-归并排序Jerry14 小时前
LeetCode 101. 对称二叉树可编程芯片开发15 小时前
基于MPPT最大功率跟踪的离网光伏发电系统Simulink建模与仿真AI科技星15 小时前
线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲米罗篮15 小时前
矩阵快速幂 (Exponentiation By Squaring Applied To Matrices)dream_home840715 小时前
图像算法模型NPU适配与算法服务实战指南大鱼>16 小时前
多宠物家庭智能管理平台:云端架构与多设备协同实战To_OC16 小时前
LC 22 括号生成:刷完这道题,我终于搞懂回溯剪枝了To_OC16 小时前
LC 39 组合总和:回溯入门必刷题,我踩过的两个坑都在这了