a. fast = fast.next.next; slow = slow.next;
找到链表中间node,判断有无环(141),判断环的起点(142)
b. for (int i = 0; i < n; ++i) fast = fast->next;
fast和slow相隔n个node,删除倒数n个node(19)
在前面的查找循环示例中,假设我们每次移动较快的指针 2 步,每次移动较慢的指针 1 步。如果没有循环,快指针需要 N/2 次才能到达链表的末尾,其中 N 是链表的长度;如果存在循环,则快指针需要 M 次才能赶上慢指针,其中 M 是列表中循环的长度。