一、题目
函数原型:
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
相关推荐
geovindu12 分钟前
CSharp: Breadth First Search Algorithm and Depth First Search Algorithmekkoalex1 小时前
训练框架以及算法实现的框架DFT计算杂谈2 小时前
交错磁研究进展材料物性与交叉应用玖玥拾2 小时前
LeetCode 26 删除有序数组中的重复项Kina_C2 小时前
LVS负载均衡的十二种核心调度算法hansang_IR3 小时前
【题解】[AGC020E] Encoding Subsets核数聚3 小时前
【赛迪专访核数聚】深耕数据治理,打通数据孤岛夯实 AI 发展根基小许同学记录成长4 小时前
相对辐射定标技术文档白白白小纯4 小时前
算法篇—返回倒数第k个节点小羊先生car4 小时前
RTOS-F429-HAL-(动/静态)任务的创建(2026/7/27)