133. Clone Graph

来源:互联网 发布:ipad淘宝在哪里看微淘 编辑:程序博客网 时间:2024/05/16 13:05
  1. 问题描述
    Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors.
  2. 解决思路
    深度搜索,广度搜索进行复制都可以。。。关键是用一个map记录哪些节点遍历过,已经有对应关系了。

  3. 代码

/** * Definition for undirected graph. * struct UndirectedGraphNode { *     int label; *     vector<UndirectedGraphNode *> neighbors; *     UndirectedGraphNode(int x) : label(x) {}; * }; */class Solution {public:    map<UndirectedGraphNode*,UndirectedGraphNode*> m;    UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {        if (!node)            return NULL;        if (m.find(node) == m.end()) {            m[node] = new UndirectedGraphNode(node->label);            for (auto x : node->neighbors) {                m[node]->neighbors.push_back(cloneGraph(x));            }        }        return m[node];    }};
0 0
原创粉丝点击