可以用快慢指针的方法来检验链表是否有环。具体步骤如下:

  1. 初始化两个指针,一个指向链表的头部,另一个指向链表的第二个节点。

  2. 慢指针每次移动一步,快指针每次移动两步。

  3. 如果链表有环,那么快指针最终会追上慢指针,因为快指针每次移动两步,慢指针每次移动一步,快指针肯定会在某个时刻遇到慢指针。

  4. 如果链表没有环,那么快指针最终会到达链表的尾部,此时可以判断链表没有环。

代码示例:

bool hasCycle(ListNode *head) {
    if (head == nullptr || head->next == nullptr) {
        return false;
    }
    ListNode *slow = head;
    ListNode *fast = head->next;
    while (slow != fast) {
        if (fast == nullptr || fast->next == nullptr) {
            return false;
        }
        slow = slow->next;
        fast = fast->next->next;
    }
    return true;
}
``
如何检验链表有没有环

原文地址: http://www.cveoy.top/t/topic/ey3Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录