java 链表中是否有环
public class 链表中是否有环
{
class ListNode
{
ListNode next;
int val;
ListNode(int x)
{
this.val = x;
this.next = null;
}
}
public boolean hasCycle(ListNode head)
{
if (head == null)
{
return false;
}
// 利用长短步,快的指针两个结点,慢的指针一步一个结点,当快的指针遇见null结束 则链表中没有环,若快的指针遇到慢的指针则,链表中有环
ListNode quick = head;
ListNode slow = head;
while (quick.next != null && quick.next.next != null)
{
quick = quick.next.next;
slow = slow.next;
if (quick == slow)
{
return true;
}
}
return false;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步