File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-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+ let visited = { } ;
15+
16+ const dfs = ( node ) => {
17+ if ( ! node ) return node ;
18+ if ( visited [ node . val ] ) return visited [ node . val ] ;
19+
20+ let root = new Node ( node . val ) ;
21+ visited [ node . val ] = root ;
22+
23+ for ( let neighbor of node . neighbors ) {
24+ root . neighbors . push ( dfs ( neighbor ) ) ;
25+ }
26+ return root ;
27+ } ;
28+
29+ return dfs ( node ) ;
30+ } ;
31+
32+ // TC: O(n+e) -> n: number of nodes | e: number of edges
33+ // SC: O(v) -> v: length of visited object
You can’t perform that action at this time.
0 commit comments