Skip to content

Commit 3d4b631

Browse files
committed
Time: 11 ms (17.94%), Space: 8.9 MB (24.17%) - LeetHub
1 parent f5d7573 commit 3d4b631

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

clone-graph/clone-graph.cpp

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
// Definition for a Node.
3+
class Node {
4+
public:
5+
int val;
6+
vector<Node*> neighbors;
7+
Node() {
8+
val = 0;
9+
neighbors = vector<Node*>();
10+
}
11+
Node(int _val) {
12+
val = _val;
13+
neighbors = vector<Node*>();
14+
}
15+
Node(int _val, vector<Node*> _neighbors) {
16+
val = _val;
17+
neighbors = _neighbors;
18+
}
19+
};
20+
*/
21+
22+
class Solution {
23+
unordered_map<Node*, Node*> mp;
24+
public:
25+
Node* cloneGraph(Node* node) {
26+
if(node == NULL)
27+
return NULL;
28+
29+
if(mp.find(node) != mp.end())
30+
return mp[node];
31+
32+
Node* t = new Node(node->val);
33+
mp[node] = t;// node to clone mapping
34+
35+
for(auto& n: node->neighbors){
36+
t->neighbors.push_back(cloneGraph(n));
37+
}
38+
39+
40+
return t;
41+
}
42+
};

0 commit comments

Comments
 (0)