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)
# =============================================================================