Leetcode 797. 所有可能的路径(中等)

797. 所有可能的路径(中等)

图的递归遍历

题目:

题目输入一幅有向无环图,这个图包含n个节点,标号为0, 1, 2,..., n - 1,请你计算所有从节点0到节点n - 1的路径。

输入的这个graph其实就是「邻接表」表示的一幅图,graph[i]存储这节点i的所有邻居节点。

比如输入graph = [[1,2],[3],[3],[]],就代表下面这幅图:

0->1

|     |

2->3

算法应该返回[[0,1,3],[0,2,3]],即03的所有路径。

 

思路:labuladong

递归遍历所有结点,遍历到该节点时,使用path记录结点,当退出结点时从path末尾退出。当遍历的结点s为图的末尾时,将path记录到结果中

 

复制代码
class Solution {
public:
    vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
        vector<int> path;
        traverse(graph,0,path);
        return ret;
    }
    void traverse(vector<vector<int>>& graph, int s, vector<int>& path){
        path.push_back(s);
        int n=graph.size();
        if(s==n-1){
            ret.push_back(path);
            path.pop_back();
            return;
        }
        for(int i=0;i<graph[s].size();++i){
            traverse(graph,graph[s][i],path);
        }
        path.pop_back();
    }
    vector<vector<int>> ret;
};
复制代码

 

posted @   鸭子船长  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2016-02-16 Android 下的EXIF
点击右上角即可分享
微信分享提示