Detecting a cycle L Detecting a cycle L Slides: 48 Download presentation Detecting a cycle L Detecting a cycle L p Detecting a cycle L p stack Detecting a cycle L p stack Detecting a cycle L p Detecting a cycle p Cycle detected at p L Now restore the list using the saved pointers p L Restoring. . . L p Restoring. . . L p Restoring. . . L p Restoring. . . L p Restored! L How much time and space? L How much time and space? p O(N) time L O(N) space for stack Detecting a cycle with two-speed pointers L p q Detecting a cycle with two-speed pointers L q p Detecting a cycle with two-speed pointers L q p Detecting a cycle with two-speed pointers L q p Detecting a cycle with two-speed pointers L q p Detecting a cycle with two-speed pointers p L q Detecting a cycle with two-speed pointers p L q Detecting a cycle with two-speed pointers L p q Detecting a cycle with two-speed pointers L q p Detecting a cycle with two-speed pointers L Cycle detected p q How much time and space? L Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Two-speed method: a larger example Cycle detected! How much time and space? How much time and space? O(N) time O(1) space