DataStructure_Algorithm_HandBook_PreForLeetCode

DFS(深度优先搜索)

一般来说,DFS使用递归来实现。递归也就是方法自己调用自己。要深刻理解递归,一个比较好的方式就是将递归的过程抽象成一个树状的结构,递归代码就是对这棵抽象树进行深度优先搜索。

在实现递归代码之前,我们需要考虑三个结构:

  1. 递归函数的参数
  2. 递归的出口
  3. 递归的方向
dfs(para1, para2....) {
    //stop
    if (....) return;
    for nx in directions:
        dfs(nx)
}