一、题目
函数原型:
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
相关推荐
源代码•宸1 小时前
分布式缓存-GO(分布式算法之一致性哈希、缓存对外服务化)yongui478342 小时前
MATLAB的指纹识别系统实现高山上有一只小老虎2 小时前
翻之矩阵中的行jghhh012 小时前
RINEX文件进行卫星导航解算爱思德学术2 小时前
中国计算机学会(CCF)推荐学术会议-A(计算机科学理论):LICS 2026CVHub2 小时前
多模态图文训推一体化平台 X-AnyLabeling 3.0 版本正式发布!首次支持远程模型推理服务,并新增 Qwen3-VL 等多款主流模型及诸多功能特性,等hoiii1872 小时前
MATLAB实现Canny边缘检测算法qq_430855883 小时前
线代第二章矩阵第四课:方阵的幂roman_日积跬步-终至千里3 小时前
【计算机设计与算法-习题2】动态规划应用:矩阵乘法与钢条切割问题kupeThinkPoem3 小时前
计算机算法导论第三版算法视频讲解