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;

    }
}
相关推荐
AI人工智能+电脑小能手39 分钟前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
Cosolar3 小时前
从零写一个 Attention Is All You Need
人工智能·面试·架构
_日拱一卒4 小时前
LeetCode:207课程表
java·数据结构·算法·leetcode·职场和发展
jiayong235 小时前
AI架构师面试题库 - 完整汇总文档
人工智能·面试·职场和发展
风筝在晴天搁浅7 小时前
美团 LeetCode 692.前K个高频单词
算法·leetcode·职场和发展
我爱cope9 小时前
【Agent智能体13 | 工具使用-什么是工具?】
人工智能·语言模型·职场和发展
he___H9 小时前
面试场景题
面试·职场和发展
ricardo19739 小时前
防抖节流进阶 + requestAnimationFrame:滚动与输入场景的性能优化
前端·面试
自进化Agent智能体10 小时前
拆解Hermes会话循环:一个目标如何变成可执行的代码
面试
是小王同学啊~11 小时前
Kafka 面试通关笔记:高频八股 + 生产实战 + 追问链路(上)
笔记·面试·kafka