1.判断链表是否有环
追赶法:设定两个指针slow、fast,均从头指针开始,每次分别前进1步、2步;如果存在环,则两者相遇,如果不存在环,fast遇到null退出
2.计算环的长度
记录下问题1的相遇点,slow、fast从该点出发,再次相遇时,slow所经过的节点数就是环的长度
3.环的入口位置
设问题1中相遇点为m2,p=h,q=m2;h为链表头节点,p,q每次向前一步,p、q相遇的位置即为环的入口
第三点证明过程见:http://blog.csdn.net/u011373710/article/details/54024366