例子说明:
400米的跑道
r1=40m/s
r2=80m/s
跑了n秒
当r1*n-r2*n秒=200米的时候正好是r2跑到了中间位置
package com.dasenlin.algorithm;
public class LinkListMain {
int data;
LinkListMain next;
public static void FindMid(LinkListMain first){
LinkListMain fast = first;
LinkListMain slow = first;
while((fast != null)&&(fast.next != null)){
fast = fast.next.next;
slow = slow.next;
}
System.out.println(slow.data);
}
public static void main(String[] args) {
LinkListMain n1 = new LinkListMain();
LinkListMain n2 = new LinkListMain();
LinkListMain n3 = new LinkListMain();
LinkListMain n4 = new LinkListMain();
LinkListMain n5 = new LinkListMain();
n1.data = 1;
n2.data = 2;
n3.data = 3;
n4.data = 4;
n5.data = 5;
n1.next = n2;
n2.next = n3;
n3.next = n4;
n4.next = n5;
FindMid(n1);
}