一、题目
函数原型:
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
相关推荐
小陈phd15 分钟前
QAnything 阅读优化策略03——查询转换良木生香29 分钟前
【C++初阶】STL—— Stack & Queue 从入门到精通:容器适配器、迭代器与经典面试题小小晓.41 分钟前
C++小白记:vectortkevinjd43 分钟前
力扣72-编辑距离小刘学技术1 小时前
AI人工智能决策树分类器:原理、实现与应用caimouse1 小时前
mm学习笔记_04:VAD树算法与地址空间分配abcy0712132 小时前
flink窗口类型什巳12 小时前
JAVA练习309- 二叉树的层序遍历什巳14 小时前
JAVA练习306- 翻转二叉树smj2302_7968265215 小时前
解决leetcode第3989题网格中保持一致的最大列数