class Solution {
public:
UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
if(node==NULL)return NULL;
unordered_map<UndirectedGraphNode*,UndirectedGraphNode*>copied;
clone(node,copied);
return copied[node];
}
UndirectedGraphNode*clone(UndirectedGraphNode*node,unordered_map<UndirectedGraphNode*,
UndirectedGraphNode*>&copied)
{
if(copied.find(node)!=copied.end())return copied[node];
UndirectedGraphNode*new_node=new UndirectedGraphNode(node->label);
copied[node]=new_node;
for(auto it:node->neighbors)
new_node->neighbors.push_back(clone(it,copied));
return new_node;
}
};
网友评论