blob: 4ad02ef816715a877aec48a9531859ea0827744a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include "leetcode.h"
class Solution {
public:
vvd allPathsSourceTarget(vvd & graph) {
vvd ans;
vector<int> path;
dfs(graph, ans, path, 0);
return ans;
}
private:
void dfs(vvd & graph, vvd & ans, vector<int> &path, int curr) {
path.push_back(curr);
if (curr == graph.size() - 1)
ans.push_back(path);
else
for (auto it : graph[curr])
dfs(graph, ans, path, it);
path.pop_back();
}
};
int main() {
Solution obj;
vvd graph = {{1, 2}, {3}, {3}, {}};
for (auto i : obj.allPathsSourceTarget(graph))
for (auto j : i)
cout << j << ' ';
}
|