forked from DaleStudy/leetcode-study
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhwanmini.js
More file actions
39 lines (31 loc) · 860 Bytes
/
hwanmini.js
File metadata and controls
39 lines (31 loc) · 860 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
28
29
30
31
32
33
34
35
36
37
38
39
// 노드 수 v, 간선 e
// 시간복잡도 O(v+e)
// 공간복잡도 O(v+e)
/**
* // Definition for a _Node.
* function _Node(val, neighbors) {
* this.val = val === undefined ? 0 : val;
* this.neighbors = neighbors === undefined ? [] : neighbors;
* };
*/
/**
* @param {_Node} node
* @return {_Node}
*/
var cloneGraph = function(node) {
if (!node) return
const visited = new Map()
visited.set(node, new _Node(node.val))
const que = [node]
while (que.length) {
const curNode = que.shift()
for (neighbor of curNode.neighbors) {
if (!visited.has(neighbor)) {
visited.set(neighbor, new _Node(neighbor.val));
que.push(neighbor)
}
visited.get(curNode).neighbors.push(visited.get(neighbor))
}
}
return visited.get(node)
};