如果链表中存在环,那么链表就可以一直遍历下去而不会终止,有一个技巧性比较强的方法来判定链表是否存在环:
我们使用两个指针来遍历链表(慢指针和快指针),慢指针每次步进 111 个节点,快指针每次步进 222...首先要说明下什么是数组的主元素,所谓数组的主元素,是指出现次数大于 n/2n / 2n/2 (nnn 为数组的元素个数)的数组元素,例如数组 [2,1,1,1][2, 1, 1, 1][2,1,1,1]..., 其中 111 出现了 333 次, 大于 n/2=>4/2=>2n / 2 => 4 / 2 => 2n/2=>4/2=>2 次,所以 111 就是这个数组的主元素;而对于数组 [2,1,1,3][...2, 1, 1, 3][2,1,1,3], 其中 111 只出现了 222 次(不大于 n/2=>4/2=>2n / 2 => 4 / 2 => 2n/2=>4/2=>2 次),所以 111 不是这个数组的主元素...现在我们已知一个数组中存在主元素,问题是如何找出这个主元素?