Skip to content

Commit 8d06643

Browse files
Sean PrashadSean Prashad
authored andcommitted
Add 133_Clone_Graph.java
1 parent 78dce6a commit 8d06643

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public Node cloneGraph(Node node) {
3+
if (node == null) {
4+
return null;
5+
}
6+
7+
Queue<Node> q = new LinkedList<>();
8+
Map<Node, Node> clones = new HashMap<>();
9+
10+
clones.put(node, new Node(node.val, new ArrayList<>()));
11+
q.offer(node);
12+
13+
while (!q.isEmpty()) {
14+
Node n = q.poll();
15+
16+
for (Node neighbour : n.neighbors) {
17+
if (!clones.containsKey(neighbour)) {
18+
clones.put(neighbour, new Node(neighbour.val, new ArrayList<>()));
19+
q.offer(neighbour);
20+
}
21+
clones.get(n).neighbors.add(clones.get(neighbour));
22+
}
23+
}
24+
25+
return clones.get(node);
26+
}
27+
}

0 commit comments

Comments
 (0)