
🌈这里是say-fall分享,感兴趣欢迎三连与评论区留言 🔥专栏: 《C语言从零开始到精通》 《C语言编程实战》 《数据结构与算法》 《小游戏与项目》 💪格言:做好你自己,你才能吸引更多人,并与他们共赢,这才是你最好的成长方式。

经典的Floyd判圈算法(龟兔赛跑算法),用于检测单链表中是否存在环。
slow(慢指针/乌龟)和fast(快指针/兔子),同时从链表头部出发。slow指针每次移动一步,fast指针每次移动两步。NULL)。head。fast != NULL && fast->next != NULL,确保快指针不会访问空指针的成员,避免程序崩溃。slow == fast),说明链表有环,返回true;否则循环结束后返回false。
bool hasCycle(struct ListNode *head)
{
typedef struct ListNode ListNode;
ListNode* fast = head;
ListNode* slow = head;
while(fast!=NULL && fast->next!= NULL)
{
fast = fast->next->next;
slow = slow->next;
if(slow == fast)
{
return true;
}
}
return false;
}