题目
分析
对于这种所有路径,便可以考虑深度优先搜索(DFS),再嵌套使用。
代码
class Solution
{
public:
vector<vector<int>> ans; //定义二维容器作为返回结果。
vector<int> stk; //定义一个一维容器
void dfs(vector<vector<int>>& graph, int x, int n) //深度优先搜索。
{
if (x == n) //如果graph[x]
{
ans.push_back(stk);
return;
}
for (int& y : graph[x]) //遍历图给的条件
{
stk.push_back(y);
dfs(graph, y, n);
stk.pop_back();
}
}
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph)
{
int n = graph.size() - 1;
stk.push_back(0);
dfs(graph, 0, n);
return ans;
}
};