Las respuestas de los demás fueron totalmente correctas. Sin embargo, me gustaría ofrecer una forma más intuitiva de entender este problema (al menos para mí)
– Piensa en una carrera entre una tortuga y una liebre en un campo de atletismo
– Suponga que la liebre corre mucho más rápido que la tortuga.
– Si ambos siguen corriendo infinitamente, pronto la liebre estará 1 ronda por delante de la tortuga.
Ahora piense en el problema de la lista circular
- ¿Cuál es el algoritmo más adecuado para la agrupación en una red social?
- ¿Cuál es el mejor algoritmo de extracción de características para comparar dos imágenes?
- ¿Cómo visualizo el laberinto que estoy creando?
- ¿Qué tipo de ordenación usa C ++ para hacer múltiples clasificaciones?
- ¿Qué series matemáticas debo saber para calcular la complejidad de cualquier algoritmo o pseudocódigo?
– si tienes 1 puntero se mueve a baja velocidad (la tortuga)
– el otro a mayor velocidad (la liebre)
– entonces, si la lista es realmente circular (como el campo de seguimiento), la más rápida estará 1 vuelta por delante de la más lenta, es decir, el puntero 2 se volverá a encontrar.
Editar: quiero decir, el más rápido será 1 ronda por delante del más lento pronto. Si los 2 siguen corriendo, esa diferencia aumentará