翻译自 链接
Floyd算法
这个问题可以使用两个指针来解决,一个快指针,一个慢指针。开始时这两个指针都指向链表头部。慢指针每次向下移动一个节点,快指针每次向下移动两个节点。如果链表中存在循环,快指针和慢指针就会相遇。
1 | struct node |
时间复杂度:O(n) 空间复杂度:O(1)
翻译自 链接
Floyd算法
这个问题可以使用两个指针来解决,一个快指针,一个慢指针。开始时这两个指针都指向链表头部。慢指针每次向下移动一个节点,快指针每次向下移动两个节点。如果链表中存在循环,快指针和慢指针就会相遇。
1 | struct node |
时间复杂度:O(n) 空间复杂度:O(1)