在环上相遇后,记录第一次相遇点为Pos,之后指针slow继续每次走1步,fast每次走2步。
在下次相遇的时候fast比slow正好又多走了一圈,也就是多走的距离等于环长。
设从第一次相遇到第二次相遇,设slow走了len步,则fast走了2*len步,相遇时多走了一圈:
环长=2*len-len。
int getRingLength(LinkNode *meetNode){
int RingLength=0;
LinkNode *fast = meetNode;
LinkNode *slow = meetNode;
for(;;){
fast = fast->next->next;
slow = slow->next;
RingLength++;
if(fast == slow)
break;
}
return RingLength;