package problems.medium; import problems.utils.UndirectedGraphNode; import java.util.HashMap; import java.util.Map; /** * Created by sherxon on 1/5/17. */ public class CloneGraph { Map<Integer, UndirectedGraphNode> map=new HashMap<>(); public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) { return cloneG(node); } private UndirectedGraphNode cloneG(UndirectedGraphNode node) { if(node==null)return null; if(map.containsKey(node.label)) return map.get(node.label); UndirectedGraphNode nn= new UndirectedGraphNode(node.label); map.put(nn.label, nn); for (UndirectedGraphNode neighbor : node.neighbors) { UndirectedGraphNode clone=cloneG(neighbor); nn.neighbors.add(clone); } return nn; } }