import java.util.ArrayList;
import java.util.HashMap;
class UndirectedGraphNode {
int label;
ArrayList<UndirectedGraphNode> neighbors;
UndirectedGraphNode(int x) {
label = x;
neighbors = new ArrayList<UndirectedGraphNode>();
}
};
public class Solution {
HashMap<Integer,UndirectedGraphNode>map=new HashMap<>();
//递归实现无向图的克隆
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
return clone(node);
}
//递归函数
private UndirectedGraphNode clone(UndirectedGraphNode node){
if(node==null)
return null;
if(map.containsKey(node.label)){
return map.get(node.label);
}
UndirectedGraphNode clone=new UndirectedGraphNode(node.label);
map.put(clone.label,clone);
for(UndirectedGraphNode neighbor:node.neighbors){
//递归调用
clone.neighbors.add(clone(neighbor));
}
return clone;
}
public static void main(String[]args){
System.out.println("Hello World!");
}
}
克隆一个无向图
最新推荐文章于 2022-06-29 22:36:54 发布