/* // Definition for a Node. class Node { public int val; public List<Node> neighbors; public Node() { val = 0; neighbors = new ArrayList<Node>(); } public Node(int _val) { val = _val; neighbors = new ArrayList<Node>(); } public Node(int _val, ArrayList<Node> _neighbors) { val = _val; neighbors = _neighbors; } } */
classSolution{ Map<Node, Node> clone = new HashMap();
public Node cloneGraph(Node node){ if (clone.containsKey(node)) { return clone.get(node); }
Node newNode = new Node(node.val); clone.put(node, newNode);
for (Node neighbor : node.neighbors) { newNode.neighbors.add(cloneGraph(neighbor)); }