c_cpp 克隆图dfs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 克隆图dfs相关的知识,希望对你有一定的参考价值。

struct GNode {
    int label;
    vector<GNode*> neibs;
    GNode(int x) : label(x) {}
};

typedef unordered_map<const GNode*, GNode*> MAP;

GNode* clone_by_dfs(const GNode *g, MAP &hash) {
    if(hash.find(g) != hash.end()) return hash[g];
    GNode *newg = new GNode(g->label);
    hash[g] = newg;
    for(auto nei : g->neibs) 
        newg->neibs.push_back(clone_by_dfs(nei, hash));
    return newg;
}

GNode *clone_graph(const GNode *g) {
    if(g == nullptr) return nullptr;
    MAP hash;
    clone_by_dfs(g, hash);
    return hash[g];
}

GNode* cloneGrph(const GNode *node) {
    // use unordered_map
    // use queue
}

以上是关于c_cpp 克隆图dfs的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode No.133 克隆图(DFS)

Leetcode No.133 克隆图(DFS)

Leetcode——克隆图

c_cpp DFS

c_cpp 迭代DFS

c_cpp DFS