-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclone_graph.cpp
More file actions
27 lines (23 loc) · 762 Bytes
/
Copy pathclone_graph.cpp
File metadata and controls
27 lines (23 loc) · 762 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Problem Link : https://leetcode.com/problems/clone-graph/description/
void dfs(Node *node , Node *copy , vector<Node *>&vis){
vis[copy->val]= copy ;
for(auto x : node->neighbors){
if(vis[x->val]==NULL){
Node *newNode = new Node(x->val) ;
(copy->neighbors).push_back(newNode) ;
dfs(x , newNode , vis) ;
}
else {
(copy->neighbors).push_back(vis[x->val]);
}
}
}
Node* cloneGraph(Node* node) {
if(node==NULL){
return node ;
}
vector<Node *>vis(1000 , NULL) ;
Node *copy = new Node(node->val) ;
dfs(node , copy , vis) ;
return copy ;
}