If some node points back to an earlier node, a normal walk through the list never ends. Floyd's algorithm uses a slow and a fast pointer that must meet inside a cycle, using O(1) extra memory. Use it whenever a list might loop, and the same idea finds repeats in some array problems. A HashSet of visited nodes also detects cycles, but it costs O(n) memory.