Leetcode 133 Solution

This article provides solution to leetcode question 133 (clone-graph)

https://leetcode.com/problems/clone-graph

Solution

/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : label(x) {}; * }; */ class Solution { unordered_map<UndirectedGraphNode*, UndirectedGraphNode*> m_clones;
public: UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { if (node == NULL) return NULL;
if (m_clones.find(node) != m_clones.end()) return m_clones[node];
auto clonedNode = new UndirectedGraphNode(node->label); m_clones[node] = clonedNode;
for (const auto neighbor : node->neighbors) clonedNode->neighbors.push_back(cloneGraph(neighbor));
return clonedNode; } };