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;

    }
}
相关推荐
indexsunny2 小时前
互联网大厂Java求职面试实战:微服务与Spring生态全攻略
java·数据库·spring boot·安全·微服务·面试·消息队列
心软小念3 小时前
金三银四,全网最详细的软件测试面试题总结
软件测试·面试·职场和发展
Wilber的技术分享4 小时前
【LeetCode高频手撕题 2】面试中常见的手撕算法题(小红书)
笔记·算法·leetcode·面试
软件测试媛5 小时前
软件测试常见的面试题(46道)
功能测试·面试·职场和发展
IronMurphy5 小时前
【算法三十一】46. 全排列
算法·leetcode·职场和发展
东离与糖宝7 小时前
金三银四Java校招面经:从双非到大厂Offer,我只准备了这些
java·面试
红云梦8 小时前
简历投了 100 份没回音?我给面试平台加了个“简历雷达“
人工智能·面试·职场和发展
星辰_mya9 小时前
InnoDB的“身体结构”:页、Buffer Pool与Redo Log的底层奥秘
数据库·mysql·spring·面试·系统架构
iPadiPhone9 小时前
分布式架构的“润滑剂”:RabbitMQ 核心原理与大厂面试避坑指南
分布式·后端·面试·架构·rabbitmq
kyriewen9 小时前
DOM树与节点操作:用JS给网页“动手术”
前端·javascript·面试