DSA Crash Course
Templates

Template: 7. DFS — Recursive

Mark when done:

7. DFS — Recursive

# =============================================================================
def dfs(node, visited, get_neighbors):
    visited.add(node)
    # process node here
    for neighbor in get_neighbors(node):
        if neighbor not in visited:
            dfs(neighbor, visited, get_neighbors)


# =============================================================================