Skip to content

Commit a1e93a8

Browse files
author
Jeongwon Na
committed
solution: clone graph
1 parent 4ec527e commit a1e93a8

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

clone-graph/njngwn.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
// Definition for a Node.
3+
class Node {
4+
public int val;
5+
public List<Node> neighbors;
6+
public Node() {
7+
val = 0;
8+
neighbors = new ArrayList<Node>();
9+
}
10+
public Node(int _val) {
11+
val = _val;
12+
neighbors = new ArrayList<Node>();
13+
}
14+
public Node(int _val, ArrayList<Node> _neighbors) {
15+
val = _val;
16+
neighbors = _neighbors;
17+
}
18+
}
19+
*/
20+
21+
class Solution {
22+
HashMap<Node, Node> nodeMap = new HashMap<>(); // key: original Node, value: copied Node
23+
24+
public Node cloneGraph(Node node) {
25+
if (node == null) return null;
26+
27+
if (nodeMap.containsKey(node)) {
28+
return nodeMap.get(node);
29+
}
30+
31+
Node newNode = new Node(node.val);
32+
nodeMap.put(node, newNode);
33+
34+
for (Node neighborNode : node.neighbors) {
35+
newNode.neighbors.add(cloneGraph(neighborNode));
36+
}
37+
38+
return newNode;
39+
}
40+
}

0 commit comments

Comments
 (0)