无向图的深拷贝,图的label唯一,可以作为key,map存储一个原版,一个拷贝:
Map<Integer, UndirectedGraphNode> map = new HashMap<>();
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
if (node == null) {
return null;
}
int label = node.label;
if (map.containsKey(label)) {
return map.get(label);
}
UndirectedGraphNode result = new UndirectedGraphNode(label);
map.put(label, result);
for (UndirectedGraphNode neighbor : node.neighbors) {
result.neighbors.add(cloneGraph(neighbor));
}
return result;
}