LeetCode – Clone Graph (Java)
Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors.
Java Solution 1 - DFS
HashMap<Node, Node> map = new HashMap<>(); public Node cloneGraph(Node node) { map.put(node, new Node(node.val, new ArrayList<>())); for(Node neighbor: node.neighbors){ if(map.containsKey(neighbor)){ map.get(node).neighbors.add(map.get(neighbor)); }else{ map.get(node).neighbors.add(cloneGraph(neighbor)); } } return map.get(node); } |
Java Solution 2 - BFS
public Node cloneGraph(Node node) { Map<Node, Node> map = new HashMap<>(); Queue<Node> queue = new ArrayDeque<>(); queue.offer(node); map.put(node, new Node(node.val, new ArrayList<>())); while (!queue.isEmpty()) { Node h = queue.poll(); for (Node neighbor : h.neighbors) { if (!map.containsKey(neighbor)) { map.put(neighbor, new Node(neighbor.val, new ArrayList<>())); queue.offer(neighbor); } map.get(h).neighbors.add(map.get(neighbor)); } } return map.get(node); } |
<pre><code> String foo = "bar"; </code></pre>
-
deepak shinde
-
Rishabh Jain
-
Milan
-
gowtham Bk
-
rashmibrahma
-
Wayne
-
Howard
-
Yoonsoo Kim
-
ryanlr
-
Henry