当前位置: 首页 > news >正文

[leetcode]Clone Graph

Clone Graph,采用BFS,同时用一个Map记录原先节点和现在节点的映射,顺便可以用来做visited check。一开始有两个错误,一是null的时候也要返回null,二是有可能节点0也有指向0本身的邻居,所以在对neighbors做遍历前要先放到map里。

public class Solution {
    HashMap<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<UndirectedGraphNode, UndirectedGraphNode>();
    public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
        map.clear();
        return cloneNode(node);
    }
    
    private UndirectedGraphNode cloneNode(UndirectedGraphNode node)
    {
        if (node == null) return null;
        if (map.containsKey(node)) return map.get(node);
        else
        {
            UndirectedGraphNode copy = new UndirectedGraphNode(node.label);
            map.put(node, copy);
            for (UndirectedGraphNode n : node.neighbors)
            {
                copy.neighbors.add(cloneNode(n));
            }
            return copy;
        }
    }
}

  

转载于:https://www.cnblogs.com/lautsie/p/3356392.html

相关文章:

  • 风尘若幻_封装win7_sp3(终于可以和大家见面了,欢迎试用-谢谢支持!!!)
  • jsPlumb
  • Python学习 Part3:数据结构
  • 关于JAVA的守护进程
  • DWZ中Tree树形菜单的treeCheck如何获取返回值解决方案
  • Knockout.Js官网学习(options绑定)
  • 【译】手动处理Team Foundation Server 2010 数据仓库和分析服务数据库
  • 多系统开机流程
  • 《你不常用的c#之一》:略谈unsafe
  • JNI的method映射对应表
  • Visual Studio 2008 使用 WinCE 5.0 Emulator
  • 每日英语:How Often Do Gamblers Really Win?
  • core--线程状态
  • 纵向二级列表
  • 转:windows xp下如何安装SQL server2000企业版
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • 77. Combinations
  • Android 控件背景颜色处理
  • Babel配置的不完全指南
  • canvas 五子棋游戏
  • CSS盒模型深入
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SSH 免密登录
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 初识 webpack
  • 关于Flux,Vuex,Redux的思考
  • 汉诺塔算法
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 一个完整Java Web项目背后的密码
  • 一个项目push到多个远程Git仓库
  • 应用生命周期终极 DevOps 工具包
  • 运行时添加log4j2的appender
  • 怎么把视频里的音乐提取出来
  • ​比特币大跌的 2 个原因
  • #pragma 指令
  • (33)STM32——485实验笔记
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (day6) 319. 灯泡开关
  • (二)windows配置JDK环境
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)程序员疫苗:代码注入
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .Net - 类的介绍
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置