题目描述:
输入一个单向链表,判断链表是否有环?
分析:
通过两个指针,分别从链表的头节点出发,一个每次向后移动一步,另一个移动两步,两个指针移动速度不一样,如果存在环,那么两个指针一定会在环里相遇。
public boolean isCircleNode(ListNode head) { boolean circle = false; ListNode fast = head; ListNode slow = head; while (fast != null && fast.next != null) { fast = fast.next.next; slow = slow.next; if (fast == slow) // 环内相遇 circle = true; } return circle; }
时间: 2024-10-24 11:11:21