Skip to content

Last modified: June 17, 2025

Depth-First Search

Algorithm for searching a graph

depth = vertical before horizontal

    A
   / \
  B   C
 / \    \
D   E    F
def dfs(graph, start, visited=None):
    if visited is None:
        visited = set()

    visited.add(start)
    print(start)

    for neighbor in graph[start]:
        if neighbor not in visited:
            dfs(graph, neighbor, visited)

Time Complexity = O(V + E)