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;
    };
  • 相关阅读:
    js如何求一组数中的极值
    五星评分效果 原生js
    省市区三级联动
    jq表头固定
    css垂直居中 两种方法
    node.js grunt文件压缩
    js 定时器
    动态规划---最长公共子序列
    AES,RSA对称加密和非对称加密
    正则表达式学习笔记
  • 原文地址:https://www.cnblogs.com/bright-mark/p/9602959.html
Copyright © 2011-2022 走看看