class Solution {
public:
map st;
Node *cloneGraph(Node *node){
Node* ret = new Node(node->val,vector());
st[node]=ret;
for(auto x:node->neighbors){
auto p = st.find(x);
if(p==st.end()){
ret->neighbors.push_back(cloneGraph(x));
}else ret->neighbors.push_back(p->second);
}
return ret;
}
};
/*
// Definition for a Node.
class Node {
public:
int val;
vector neighbors;
Node() {}
Node(int _val, vector _neighbors) {
val = _val;
neighbors = _neighbors;
}
};
*/