Skip to content

Commit 31e7bd3

Browse files
committed
💀 [133] First dfs, headache ...
1 parent e526dab commit 31e7bd3

File tree

2 files changed

+85
-0
lines changed

2 files changed

+85
-0
lines changed

133/gpt_solution.js

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
class Node {
2+
constructor(val) {
3+
this.val = val;
4+
this.neighbors = [];
5+
}
6+
}
7+
8+
/**
9+
* @param {Node} node
10+
* @return {Node}
11+
*/
12+
var cloneGraph = function (node) {
13+
if (!node) return node;
14+
15+
const visited = new Map();
16+
17+
const cloneNode = (oldNode) => {
18+
if (visited.has(oldNode.val)) {
19+
return visited.get(oldNode.val);
20+
}
21+
22+
const newNode = new Node(oldNode.val);
23+
visited.set(oldNode.val, newNode);
24+
/*
25+
26+
> visited
27+
Map(4) {
28+
1 => Node { val: 1, neighbors: [] },
29+
2 => Node { val: 2, neighbors: [ [Node] ] },
30+
3 => Node { val: 3, neighbors: [ [Node] ] },
31+
4 => Node { val: 4, neighbors: [] }
32+
}
33+
34+
*/
35+
36+
for (let neighbor of oldNode.neighbors) {
37+
newNode.neighbors.push(cloneNode(neighbor));
38+
}
39+
40+
return newNode;
41+
};
42+
43+
return cloneNode(node);
44+
};

133/solution.js

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
class Node {
2+
constructor(val, neighbors) {
3+
this.val = val === undefined ? 0 : val;
4+
this.neighbors = neighbors === undefined ? [] : neighbors;
5+
}
6+
};
7+
8+
/**
9+
* @param {Node} node
10+
* @return {Node}
11+
*/
12+
var cloneGraph = function (node) {
13+
if (!node) return node;
14+
let map = new Map();
15+
16+
// closeNode
17+
const dfs = (oldNode) => {
18+
if (map.has(oldNode.val)) {
19+
console.log("all saved")
20+
console.log(oldNode)
21+
return map.get(oldNode.val);
22+
}
23+
24+
let copy = new Node(oldNode.val)
25+
map.set(oldNode.val, copy)
26+
27+
console.log("> map")
28+
console.log(map)
29+
30+
for (let nei of oldNode.neighbors) {
31+
copy.neighbors.push(dfs(nei));
32+
}
33+
34+
return copy;
35+
}
36+
37+
return dfs(node);
38+
};
39+
40+
// let n1= new Node(1, [new Node()])
41+
// cloneGraph

0 commit comments

Comments
 (0)