无法播放?请 点击这里 跳转到Youtube
切换视频源:

题目链接: https://leetcode.com/problems/clone-graph/

GitHub答案源代码请点击这里

class Solution {
    public Node cloneGraph(Node node) {
        if (node == null) {
            return null;
        }
        Map<Node, Node> map = new HashMap<>();
        return dfs(node, map);
    }
    
    private Node dfs(Node node, Map<Node, Node> map) {
        if (map.containsKey(node)) {
            return map.get(node);
        }
        
        map.put(node, new Node(node.val));
        Node clone = map.get(node);
        for (Node nei : node.neighbors) {
            clone.neighbors.add(dfs(nei, map));
        }
        return clone;
    }
}