J'ai lu une question d'entretien en ligne sur la façon de déterminer s'il y a une boucle dans une liste chaînée, et la solution ( L'algorithme de recherche de cycle de Floyd ) est d'avoir deux pointeurs, l'un est 2x plus rapide que l'autre, et de vérifier s'ils se rencontrent à nouveau.
Ma question est la suivante : pourquoi ne puis-je pas garder un pointeur fixe, en déplaçant l'autre pointeur d'un pas à chaque fois ?
7 votes
Il existe une modification un peu plus rapide de l'algorithme, si quelqu'un est curieux : siafoo.net/algorithme/11