DFS 深度优先搜索

DFS 深度优先搜索
运用栈类,递归思想
DFS本质就是一个栈,在写的时候并不显示的表现栈,在系统内部调用的时候是一个栈结构

递归:

boolean DFS(Node cur, Node target, Set<Node> visited) {
    return true if cur is target;
    for (next : each neighbor of cur) {
        if (next is not in visited) {
            add next to visted;
            return true if DFS(next, target, visited) == true;
        }
    }
    return false;
}

dfs优化:回溯

思路: 存储计算过的结果,达到简化计算的效果

image.png