Detecting a cycle L Detecting a cycle L

  • Slides: 48
Download presentation
Detecting a cycle L

Detecting a cycle L

Detecting a cycle L p

Detecting a cycle L p

Detecting a cycle L p stack

Detecting a cycle L p stack

Detecting a cycle L p stack

Detecting a cycle L p stack

Detecting a cycle L p

Detecting a cycle L p

Detecting a cycle p Cycle detected at p L

Detecting a cycle p Cycle detected at p L

Now restore the list using the saved pointers p L

Now restore the list using the saved pointers p L

Restoring. . . L p

Restoring. . . L p

Restoring. . . L p

Restoring. . . L p

Restoring. . . L p

Restoring. . . L p

Restoring. . . L p

Restoring. . . L p

Restored! L

Restored! L

How much time and space? L

How much time and space? L

How much time and space? p O(N) time L O(N) space for stack

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 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 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 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 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 Cycle detected p q

Detecting a cycle with two-speed pointers L Cycle detected p q

How much time and space? L

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

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!

Two-speed method: a larger example Cycle detected!

How much time and space?

How much time and space?

How much time and space? O(N) time O(1) space

How much time and space? O(N) time O(1) space