先来看链表是否有环的判断 设链表起始节点为H,回路起始节点为S,两指针第一次相遇节点为M。 设回路的长度为c,S到M的距离为c1,M到S的距离为c2。 设H到S的距离为d。 设hare每次移动2,tortoise每次移动1。移动k次后两者相遇。不难发现,H到M的距离为k。 为了便于理解,请参考下图:由已知条件,可得到下列等式: hare和tortoise相遇时,hare套了tortoise若干圈。则有: 2k – k = nc = k,n为正整数。 从上图中定义的距离关系,可以得到