题目链接:LeetCode133
分析:无向图的克隆可以通过一个map存出克隆前和克隆后的节点的引用。
思路:dfs或者bfs
代码:
/*
// 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;
}
}
*/
class Solution {
HashMap<Node,Node> vis=new HashMap<>();
public Node cloneGraph(Node node) {
if(node==null)return node;
if(vis.containsKey(node)){
return vis.get(node);
}
Node CloneNode=new Node(node.val,new ArrayList<>());
vis.put(node,CloneNode);
for(Node hh:node.neighbors){
CloneNode.neighbors.add(cloneGraph(hh));
}
return CloneNode;
}
}