File tree Expand file tree Collapse file tree 2 files changed +47
-0
lines changed Expand file tree Collapse file tree 2 files changed +47
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for undirected graph.
3+ * function UndirectedGraphNode(label) {
4+ * this.label = label;
5+ * this.neighbors = []; // Array of UndirectedGraphNode
6+ * }
7+ */
8+ /**
9+ * @param {UndirectedGraphNode } graph
10+ * @return {UndirectedGraphNode }
11+ */
12+ var cloneGraph = function ( graph ) {
13+ var visited = { } ;
14+
15+ if ( graph === null ) {
16+ return graph ;
17+ } else {
18+ return dfs ( graph ) ;
19+ }
20+
21+ function dfs ( node ) {
22+ var newNode = null ;
23+
24+ if ( visited [ node . label ] ) {
25+ newNode = visited [ node . label ] ;
26+ } else {
27+ newNode = new UndirectedGraphNode ( node . label ) ;
28+ visited [ node . label ] = newNode ;
29+ }
30+
31+ for ( var i = 0 ; i < node . neighbors . length ; i ++ ) {
32+ if ( ! visited [ node . neighbors [ i ] . label ] ) {
33+ newNode . neighbors . push ( dfs ( node . neighbors [ i ] ) ) ;
34+ } else {
35+ newNode . neighbors . push ( visited [ node . neighbors [ i ] . label ] ) ;
36+ }
37+ }
38+ return newNode ;
39+ }
40+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number } n
3+ * @return {number }
4+ */
5+ var numSquares = function ( n ) {
6+
7+ } ;
You can’t perform that action at this time.
0 commit comments