diff --git a/graphs/DFS.py b/graphs/DFS.py index d3c34fabb..c9843ca25 100644 --- a/graphs/DFS.py +++ b/graphs/DFS.py @@ -18,10 +18,15 @@ def dfs(graph, start): explored, stack = set(), [start] explored.add(start) while stack: - v = stack.pop() # the only difference from BFS is to pop last element here instead of first one + v = stack.pop() # one difference from BFS is to pop last element here instead of first one + + if v in explored: + continue + + explored.add(v) + for w in graph[v]: if w not in explored: - explored.add(w) stack.append(w) return explored