Day 61
题目描述
思路
/*
// 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 {
public HashMap<Node,Node>vistied=new HashMap<>();
public Node cloneGraph(Node node) {
if(node==null){//为空
return null;
}
if(vistied.containsKey(node)){//已经遍历过的点直接取出
return vistied.get(node);
}
Node newnode= new Node(node.val,new ArrayList<>());
vistied.put(node,newnode);
for(Node neighbor:node.neighbors){
newnode.neighbors.add(cloneGraph(neighbor));
}
return newnode;
}
}