File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * // Definition for a Node.
3
+ * function Node(val, neighbors) {
4
+ * this.val = val === undefined ? 0 : val;
5
+ * this.neighbors = neighbors === undefined ? [] : neighbors;
6
+ * };
7
+ */
8
+
9
+ /**
10
+ * @param {Node } node
11
+ * @return {Node }
12
+ */
13
+ var cloneGraph = function ( node ) {
14
+ if ( ! node ) return null ;
15
+
16
+ const visited = new Map ( ) ;
17
+
18
+ const dfs = ( currNode ) => {
19
+ if ( visited . has ( currNode ) ) {
20
+ return visited . get ( currNode ) ;
21
+ }
22
+
23
+ // 노드 복사
24
+ const clone = new Node ( currNode . val ) ;
25
+ visited . set ( currNode , clone ) ;
26
+
27
+ // 이웃 노드들도 복사해서 연결
28
+ for ( let neighbor of currNode . neighbors ) {
29
+ clone . neighbors . push ( dfs ( neighbor ) ) ;
30
+ }
31
+
32
+ return clone ;
33
+ } ;
34
+
35
+ return dfs ( node ) ;
36
+ } ;
You can’t perform that action at this time.
0 commit comments