一道fb的题,clone a graph# JobHunting - 待字闺中
d*w
1 楼
大家看我这样写对么,dfs来做,map来保存是否之前遇过。
1 struct Node {
2 int val;
3 vector neighbors;
4 }
5
6 Node* clone(Node *root, HashMap& map) {
7 if (root == NULL) {
8 return NULL;
9 }
10 if (map.find(root) != map::end()) {
11 return map[root];
12 }
13
14 Node* p = new Node();
15 p->val = root->val;
16 p->neighbors = new vector();
17 vector& v = p->neighbors;
18 for (int i=0; ineighbors.size(); i++) {
19 Node* orig = root->neighbors[i];
20 v.add(clone(orig, map));
21 }
22 map[root] = p;
23 return p;
24 }
1 struct Node {
2 int val;
3 vector
4 }
5
6 Node* clone(Node *root, HashMap
7 if (root == NULL) {
8 return NULL;
9 }
10 if (map.find(root) != map::end()) {
11 return map[root];
12 }
13
14 Node* p = new Node();
15 p->val = root->val;
16 p->neighbors = new vector
17 vector
18 for (int i=0; i
19 Node* orig = root->neighbors[i];
20 v.add(clone(orig, map));
21 }
22 map[root] = p;
23 return p;
24 }