day61(1.20)——leetcode面试经典150

133. 克隆图

133.克隆图

题目:

题解:

java 复制代码
/*
// 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 {
    private HashMap<Node, Node> map = new HashMap<>();
    public Node cloneGraph(Node node) {
        if(node == null){
            return null;
        }

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

        //创建新节点
        Node clone = new Node(node.val);
        //进行映射
        map.put(node, clone);

        //递归所有邻居
        for(Node neighbor : node.neighbors) {
            clone.neighbors.add(cloneGraph(neighbor));
        }
        
        //返回clone
        return clone;

    }
}
相关推荐
yuzhiboyouye1 小时前
web前端英语面试
前端·面试·状态模式
我叫黑大帅3 小时前
为什么需要 @types/react?解决“无法找到模块 react 的声明文件”报错
前端·javascript·面试
流年如夢5 小时前
栈和列队(LeetCode)
数据结构·算法·leetcode·链表·职场和发展
折哥的程序人生 · 物流技术专研5 小时前
Java面试85题图解版(一):基础核心篇
java·开发语言·后端·面试
Moment6 小时前
面试官:如果产品经理给你多个需求,怎么让AI去完成❓❓❓
前端·后端·面试
Lkstar6 小时前
面试官让我手写 Promise.all / Promise.race / Promise.allSettled,我直接水灵灵地写出来了
javascript·面试
逻辑驱动的ken6 小时前
Java高频考点场景题24
java·开发语言·面试·职场和发展·求职招聘
Fox爱分享7 小时前
字节二面:10亿数据毫秒级查手机尾号后4位,答不出“异构索引”直接挂?
java·后端·面试
WaywardOne7 小时前
Flutter面试事件队列,微任务队列以及事件循环相关问题及回答
flutter·面试
折哥的程序人生 · 物流技术专研7 小时前
《Java面试85题图解版(二)》进阶深化上篇:并发编程 + JVM
java·开发语言·后端·面试