力扣面试150题--克隆图

Day 61

题目描述

力扣面试150题--克隆图_第1张图片

思路

/*
// Definition for a Node.
class Node {
    public int val;
    public List neighbors;
    public Node() {
        val = 0;
        neighbors = new ArrayList();
    }
    public Node(int _val) {
        val = _val;
        neighbors = new ArrayList();
    }
    public Node(int _val, ArrayList _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;
    }
}

你可能感兴趣的:(leetcode,面试,java)