Clone Graph LeetCode solution in C++

1
'IF YOU LIKE IT THEN PLS UpVote😎😎😎' class Solution {
2
public:
3
Node *dfs(Node *cur, unordered_map<Node *, Node *> &mp) {
4
vector<Node *> neighbour;
5
Node *clone = new Node(cur->val);
6
mp[cur] = clone;
7
for (auto it : cur->neighbors) {
8
if (mp.find(it) != mp.end()) // already clone and stored in map
9
{
10
neighbour.push_back(mp[it]); // directly push back the clone node from map to neigh
11
} else
12
neighbour.push_back(dfs(it, mp));
13
}
14
clone->neighbors = neighbour;
15
return clone;
16
}
17
Node *cloneGraph(Node *node) {
18
unordered_map<Node *, Node *> mp;
19
if (node == NULL) return NULL;
20
if (node->neighbors.size() == 0) // if only one node present no neighbors
21
{
22
Node *clone = new Node(node->val);
23
return clone;
24
}
25
return dfs(node, mp);
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0