133. Clone Graph

2020-03-17  本文已影响0人  7ccc099f4608

https://leetcode-cn.com/problems/clone-graph/

image.png

(图片来源https://leetcode-cn.com/problems/clone-graph/

日期 是否一次通过 comment
2020-03-17 0

递归

public Node cloneGraph(Node node) {
        if(node == null) {
            return node;
        }

        Map<Node, Node> nodeMap = new HashMap<>();  // 存 {旧节点:新节点}

        return clone(node, nodeMap);
    }


    private Node clone(Node node, Map<Node, Node> nodeMap) {
        if(node == null) {
            return null;
        }

        if(nodeMap.containsKey(node)) {
            return nodeMap.get(node);
        }

        Node newNode = new Node(node.val, new ArrayList<>());
        nodeMap.put(node, newNode);

        for (Node neighbor : node.neighbors) {
            newNode.neighbors.add(clone(neighbor, nodeMap));
        }


        return newNode;
    }
上一篇 下一篇

猜你喜欢

热点阅读