zoukankan      html  css  js  c++  java
  • [LeetCode]133. Clone Graph

    复制图

    分别使用bfs和dfs

    1:bfs

    /**
     * Definition for undirected graph.
     * struct UndirectedGraphNode {
     *     int label;
     *     vector<UndirectedGraphNode *> neighbors;
     *     UndirectedGraphNode(int x) : label(x) {};
     * };
     */
    class Solution {
    public:
        UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
            if(!node) return NULL;
            unordered_map<UndirectedGraphNode*,UndirectedGraphNode*> mp;
            queue<UndirectedGraphNode*> toVisit;
            
            UndirectedGraphNode* copy = new UndirectedGraphNode(node->label);
            mp[node]=copy;
            toVisit.push(node);
            while(!toVisit.empty()){
                UndirectedGraphNode* cur = toVisit.front();
                toVisit.pop();
                for(UndirectedGraphNode* neigh:cur->neighbors){
                    if(mp.find(neigh)==mp.end()){
                        UndirectedGraphNode* neigh_copy = new UndirectedGraphNode(neigh->label);
                        mp[neigh]=neigh_copy;
                        toVisit.push(neigh);
                    }
                    mp[cur]->neighbors.push_back(mp[neigh]);
                }
            }
            return copy;
        }
    
        
    };

    2、dfs

    class Solution {
    public:
        UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
            if (!node) return NULL;
            if (mp.find(node) == mp.end()) {
                mp[node] = new UndirectedGraphNode(node -> label);
                for (UndirectedGraphNode* neigh : node -> neighbors)
                    mp[node] -> neighbors.push_back(cloneGraph(neigh));
            }
            return mp[node];
        } 
    private:
        unordered_map<UndirectedGraphNode*, UndirectedGraphNode*> mp;
    };
  • 相关阅读:
    get通配符
    常用正则表达式(合)
    2.A star
    1.序
    机器人运动规划04《规划算法》
    机器人运动规划03什么是运动规划
    6.2 性能优化
    6.1 内存机制及使用优化
    5.9 热修复技术
    5.8 反射机制
  • 原文地址:https://www.cnblogs.com/bright-mark/p/9602959.html
Copyright © 2011-2022 走看看