title: Depth-first search (DFS) code in python
body: <p>Can you please let me know what is incorrect in below DFS code. It's giving correct result AFAIK, but I don't know when it will fail.</p>
  
  <pre><code>graph1 = {
      'A' : ['B','S'],
      'B' : ['A'],
      'C' : ['D','E','F','S'],
      'D' : ['C'],
      'E' : ['C','H'],
      'F' : ['C','G'],
      'G' : ['F','S'],
      'H' : ['E','G'],
      'S' : ['A','C','G']
  }
  
  visited = []
  
  def dfs(graph,node):
      global visited
      if node not in visited:
          visited.append(node)
          for n in graph[node]:
              dfs(graph,n)
  
      dfs(graph1,'A')
      print(visited)
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>['A', 'B', 'S', 'C', 'D', 'E', 'H', 'G', 'F']
  </code></pre>