File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed
Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ // 노드 수 v, 간선 e
2+ // 시간복잡도 O(v+e)
3+ // 공간복잡도 O(v+e)
4+
5+ /**
6+ * // Definition for a _Node.
7+ * function _Node(val, neighbors) {
8+ * this.val = val === undefined ? 0 : val;
9+ * this.neighbors = neighbors === undefined ? [] : neighbors;
10+ * };
11+ */
12+
13+ /**
14+ * @param {_Node } node
15+ * @return {_Node }
16+ */
17+ var cloneGraph = function ( node ) {
18+ if ( ! node ) return
19+
20+ const visited = new Map ( )
21+ visited . set ( node , new _Node ( node . val ) )
22+
23+ const que = [ node ]
24+
25+ while ( que . length ) {
26+ const curNode = que . shift ( )
27+
28+ for ( neighbor of curNode . neighbors ) {
29+ if ( ! visited . has ( neighbor ) ) {
30+ visited . set ( neighbor , new _Node ( neighbor . val ) ) ;
31+ que . push ( neighbor )
32+ }
33+
34+ visited . get ( curNode ) . neighbors . push ( visited . get ( neighbor ) )
35+ }
36+ }
37+
38+ return visited . get ( node )
39+ } ;
You can’t perform that action at this time.
0 commit comments