美文网首页程序员
力扣 133 克隆图

力扣 133 克隆图

作者: zhaojinhui | 来源:发表于2020-09-10 03:57 被阅读0次

题意:给定一个graph,生成一个deep copy的graph

思路:递归遍历每一个graph的node,具体见注释

思想:递归

复杂度:时间O(n2),空间O(n)

class Solution {
    // key是已经遍历过的节点,value是遍历过的节点创建的新节点
    HashMap<Node, Node> map = new HashMap();
    public Node cloneGraph(Node node) {
        return build(node);
    }
    Node build(Node node) {
        // 节点为空返回null
        if(node == null)
            return null;
        // 节点遍历过,返回对应的创建的节点
        if(map.containsKey(node))
            return map.get(node);
        // 根据新遍历的节点创建新节点
        Node temp = new Node(node.val);
        map.put(node, temp);
        List<Node> list = new ArrayList();
        // 生成新节点的neighbors
        if(node.neighbors.size() > 0) {
            for(Node n: node.neighbors) {
                list.add(build(n));
            }
        }
        temp.neighbors = list;
        return temp;
    }
}

相关文章

  • LeetCode 133. 克隆图 | Python

    133. 克隆图 题目来源:力扣(LeetCode)https://leetcode-cn.com/problem...

  • 力扣 133 克隆图

    题意:给定一个graph,生成一个deep copy的graph 思路:递归遍历每一个graph的node,具体见...

  • 力扣(LeetCode)-133 克隆图

    本地考察的是图搜索 题目描述 克隆一张无向图,图中的每个节点包含一个 label (标签)和一个 neighbor...

  • LeetCode 力扣 133. 克隆图

    题目描述(中等难度) 复制一个图,图的节点定义如下。 neighbors 是一个装 Node 的 list ,因为...

  • Leetcode图

    133. 克隆图[https://leetcode-cn.com/problems/clone-graph/] 2...

  • Leetcode133. 克隆图

    题目 给定无向连通图中一个节点的引用,返回该图的深拷贝(克隆)。图中的每个节点都包含它的值 val(Int) 和其...

  • LeetCode-133-克隆图

    克隆图 题目描述:给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 ...

  • LC吐血整理之Graph篇

    所有题解方法请移步 github-Leecode_summary 133. 克隆图 DFS&BFS 有整理过对象赋...

  • LeetCode 第133题:克隆图

    1、前言 2、思路 这个题目的思路就是遍历整张图,然后克隆一摸一样的图。遍历一般使用 BFS 或者 DFS。为了记...

  • 【2019-08-13】leetcode(131-140)

    131、分隔回文串 132、分隔回文串II 133、克隆图 134、加油站 135、分发糖果 136、只出现一次的...

网友评论

    本文标题:力扣 133 克隆图

    本文链接:https://www.haomeiwen.com/subject/haruektx.html