一. 模板 int dfs(int u) { st[u] = true; // st[u] 表示点u已经被遍历过 for (int i = h[u]; i != -1; i = ne[i]) { int j = e[i]; if (!st[j]) dfs(j); } } 二. 总结 DFS 与 BFS 对比 剪枝: 最优性剪枝:当前的路径一定可以判断不如最优解 可行性剪枝:当前的路径一定不合法