https://leetcode.com/problems/clone-graph/
- DFS
- BFS
- Graph
Use a hash map to remember cloned nodes and recursively copy all neighbors.
O(V + E)
O(V)
import java.util.*;
class Solution {
private Map<Node, Node> map = new HashMap<>();
public Node cloneGraph(Node node) {
if (node == null) return null;
if (map.containsKey(node)) return map.get(node);
Node copy = new Node(node.val, new ArrayList<>());
map.put(node, copy);
for (Node neighbor : node.neighbors) copy.neighbors.add(cloneGraph(neighbor));
return copy;
}
}