用快慢指针的方法判断链表是否有环
// 判断一个单链表是否有环
// 1、用快慢指针分别指向链表首元结点和次元结点
// 2、遍历链表,让快指针走2步,慢指针走1步
// 3、当快指针变为NULL,说明没有环
// 4、当快慢指针能够相遇,说明有环
bool xxx_hasCicle(myNode* head)
{
bool ret = false;
if (head == NULL || head->next == NULL)
{
return ret;
}
myNode* slow = head; // 慢指针
myNode* fast = head->next; // 快指针
// 遍历链表
while (fast != NULL && fast->next != NULL)
{
slow = slow->next;
fast = fast->next->next;
if (slow == fast)
{
ret = true;
break;
}
}
return ret;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能