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