leetcode链接
分享原因:图的遍历 一直没怎么练过 目前的理解 就是回溯
题目:
给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)
二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。
译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。
class Solution {
public:
vector<vector<int>> res;
vector<int> stk;
void dfs(vector<vector<int>>& graph, int x,int n){
if(x==n){
res.push_back(stk);
return ;
}
for(int i=0;i<graph[x].size();i++){
stk.push_back(graph[x][i]);
dfs(graph,graph[x][i],n);
stk.pop_back();
}
}
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
stk.push_back(0);
dfs(graph, 0,graph.size()-1);
return res;
}
};