- Related Questions & Answers
- Detect Cycle in a Directed Graph
- Detect Cycle in a an Undirected Graph
- Python Program for Detect Cycle in a Directed Graph
- Hamiltonian Cycle
- Cycle Sort
- Life Cycle Phases of Data Analytics
- Floyd Warshall Algorithm
- Database Life Cycle
- The Floyd-Warshall algorithm in Javascript
- Linear Probing in Data Structure
- Explain the Difference Between Linear and Non-linear Data Structure
- Explain the life cycle of a JavaFX Application
- Instruction cycle in 8085 Microprocessor
- Linked List Cycle in Python
- Describe the life cycle of a thread in Java?

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

Floyd Cycle is one of the cycle detection algorithms to detect the cycle in a given singly linked list.

In the Floyd Cycle algorithm, we have two pointers that initially point at the head. In Hare and Tortoise’s story, Hare moves twice as fast as Tortoise, and whenever the hare reaches the end of the path, the tortoise reaches the middle of the path.

Initialize Hare and Tortoise at the head node of the List.

Initially, the hare moves twice as fast as the tortoise.

Move the hare and tortoise both and find if the hare reaches the end of the Linked List, return as there is no loop in the list.

Otherwise, both Hare and Tortoise will go forward.

If Hare and Tortoise are at the same Node, then return since we have found the list cycle.

Else, start with step 2.

tortoise := headNode hare := headNode foreach: if hare == end return 'There is No Loop Found.' hare := hare.next if hare == end return 'No Loop Found' hare = hare.next tortoise = tortoise.next if hare == tortoise return 'Cycle Detected'

Advertisements