• LeetCode-Clone Graph


    Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors.


    OJ's undirected graph serialization:

    Nodes are labeled uniquely.

    We use # as a separator for each node, and , as a separator for node label and each neighbor of the node.

    As an example, consider the serialized graph {0,1,2#1,2#2,2}.

    The graph has a total of three nodes, and therefore contains three parts as separated by #.

    1. First node is labeled as 0. Connect node 0 to both nodes 1 and 2.
    2. Second node is labeled as 1. Connect node 1 to node 2.
    3. Third node is labeled as 2. Connect node 2 to node 2 (itself), thus forming a self-cycle.

    Visually, the graph looks like the following:

           1
          / 
         /   
        0 --- 2
             / 
             \_/

    class Solution {
    public:
        void Sub(map<UndirectedGraphNode*,UndirectedGraphNode*>& se,UndirectedGraphNode** nnode,UndirectedGraphNode*node){
                (*nnode)=new UndirectedGraphNode(node->label);
                se[node]=(*nnode);
                for(int i=0;i<node->neighbors.size();i++){
                    if(se.find(node->neighbors[i])==se.end()){
                        UndirectedGraphNode * n;
                        Sub(se,&n,node->neighbors[i]);
                        (*nnode)->neighbors.push_back(n);
                    }
                    else{
                        (*nnode)->neighbors.push_back(se[node->neighbors[i]]);
                    }
                }
        }
        UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
            // Note: The Solution object is instantiated only once and is reused by each test case.
            if(node==NULL)return NULL;
            UndirectedGraphNode * ret=NULL;
            map<UndirectedGraphNode *,UndirectedGraphNode*>se;
            Sub(se,&ret,node);
            return ret;
        }
    };
    View Code
  • 相关阅读:
    特性类
    WebGL中的第三个小程序(着色器)
    C#紧耦合的例子
    特性
    python两个目录匹配,粘贴图片
    Leetcode 53
    逻辑回归-1.原理
    多项式回归-4.模型正则化
    python 线程
    python 进程
  • 原文地址:https://www.cnblogs.com/superzrx/p/3349859.html
Copyright © 2020-2023  润新知