Depth-First Search (recursive)
code: python
# N: 頂点 M: 辺
# O(N + M), O(N + M)
def dfs(graph, now, visited=None, res=None):
if visited is None:
visited = set()
if res is None:
res = []
if now not in visited:
visited.add(now)
res.append(now)
dfs(graph, next, visited, res)
return res
graph = {
}
def test_dfs():
assert dfs(graph, 'A') == 'A', 'B', 'E', 'K', 'F', 'C', 'H', 'G', 'D', 'I', 'J', 'L'