DFS的实现方式之一是用递归。
    递归实现DFS时,似乎不需要使用任何栈。但实际上,使用的是由系统提供的隐式栈,也称为调用栈(Call Stack)。

    1. """
    2. return True if there is a path from cur to target
    3. """
    4. def DFS(cur, target, visited):
    5. return true if cur is target
    6. for next in each neighbor of cur:
    7. if next is not in visited:
    8. add next to visited
    9. return true if DFS(next, target, visited) == True
    10. return False