一、题目
函数原型:
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
相关推荐
故事和你911 小时前
sdut-程序设计基础Ⅰ-实验五一维数组(8-13)像污秽一样1 小时前
算法与设计与分析-习题4.2Storynone2 小时前
【Day20】LeetCode:39. 组合总和,40. 组合总和II,131. 分割回文串明明如月学长2 小时前
AI 更新太快学不过来?我用OpenClaw打造专属AI学习工作流黎阳之光3 小时前
【黎阳之光:以无线专网与视频孪生,赋能智慧广电与数字中国】刀法如飞4 小时前
Agentic AI时代,程序员必备的算法思想指南刀法如飞4 小时前
Agentic AI时代程序员必备算法思想详解(附实战案例)飞Link4 小时前
告别盲目找Bug:深度解析 TSTD 异常检测中的预测模型(Python 实战版)记忆多5 小时前
c++名字空间 函数模版 左右值三伏5225 小时前
控制理论前置知识——相平面数学基础2(示例部分)