leetcode 日经贴,Cpp code -Clone Graph

来源:互联网 发布:淘宝小孩的皮裤 编辑:程序博客网 时间:2024/06/07 09:35

Clone Graph

/** * 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;        }        map<UndirectedGraphNode*, UndirectedGraphNode*> mp;        queue<UndirectedGraphNode*> q;        mp[node] = new UndirectedGraphNode(node->label);        q.push(node);        while (!q.empty()) {            UndirectedGraphNode *cp = q.front();            UndirectedGraphNode *np = mp[cp];            q.pop();            for (int i = 0; i < cp->neighbors.size(); ++i) {                UndirectedGraphNode *tp = cp->neighbors[i];                if (mp.find(tp) == mp.end()) {                    mp[tp] = new UndirectedGraphNode(tp->label);                    q.push(tp);                }                np->neighbors.push_back(mp[tp]);            }        }        return mp[node];    }};


0 0
原创粉丝点击