find the middle by fast-low pointer