简单
技术面试0 次浏览

如何判断一个链表是否有环?

算法工程师
链表环形链表

答题要点

判断一个链表是否有环可以使用快慢指针的方法。具体做法是,定义两个指针,一个快指针和一个慢指针。慢指针每次移动一步,快指针每次移动两步。如果链表中存在环,那么快指针最终会追上慢指针,即两个指针会相遇;如果链表中不存在环,快指针会先到达链表的末尾。以下是具体的实现步骤:首先初始化快指针和慢指针都指向链表的头节点。然后在循环中,慢指针每次移动一步,快指针每次移动两步。如果在移动过程中快指针或者快指针的下一个节点为 null,说明链表没有环,循环结束;如果快指针和慢指针相遇,说明链表有环。这种方法的时间复杂度是 O(n),因为只需要遍历链表一次;空间复杂度是 O(1),只使用了常数级的额外空间。