Quick actions

cmd+k|ctrl+k

Navigation

Languages

cycle directed

Snippet info

Language

Python

Visibility

public

Author

sriram

Created

2025-05-13T01:03:41.572023Z

Updated

2025-05-13T01:03:41.572023Z

def dfs(node, graph, visited, stack):
    visited.add(node)
    stack.add(node)
    for  neighbor in graph[node]:
        if neighbor not in visited :
            if dfs(neighbor, graph, visited, stack):
                return True
        elif neighbor in stack:
            return True
    stack.remove(node)
    return False       
    
graph = {
    'A': ['B', 'C', 'D'],
    'B': ['E'],
    'C': ['E'],
    'D': [],
    'E': []
}


visited=set()
stack=set()
for node in graph:
    if node not in visited:
        if dfs(node, graph, visited, stack):  # If cycle is detected
            print("Cycle Detected")
            break
else:
    print("No Cycle Detected")
INFO