Step 1: Start DFS from node 1, mark node 1 as visiting
Visiting: [1], Visited: []
Why: We begin exploring from node 1 to find cycles
Step 2: Move to node 2 from node 1, mark node 2 as visiting
Visiting: [1, 2], Visited: []
Why: Follow edge 1->2 to continue search
Step 3: Move to node 3 from node 2, mark node 3 as visiting
Visiting: [1, 2, 3], Visited: []
Why: Follow edge 2->3 to continue search
Step 4: Move to node 4 from node 3, mark node 4 as visiting
Visiting: [1, 2, 3, 4], Visited: []
Why: Follow edge 3->4 to continue search
Step 5: Move to node 5 from node 4, mark node 5 as visiting
Visiting: [1, 2, 3, 4, 5], Visited: []
Why: Follow edge 4->5 to continue search
Step 6: From node 5, try to move to node 2 which is already visiting
Visiting: [1, 2, 3, 4, 5], Visited: []
Why: Finding node 2 in visiting means a cycle exists
Step 7: Cycle detected, stop search
Cycle found involving nodes 2, 3, 4, 5
Why: Cycle means path leads back to a node still in current path
Result: Cycle found: 2 -> 3 -> 4 -> 5 -> 2