LeetCode-133克隆图(图的遍历+深拷贝概念)
2024-09-02 17:13:05
克隆图
LeetCode-133
- 使用一个map来存储已经遍历的结点,这个存起来的结点必须是新new的才符合题意
/*
// 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 {
boolean[] flag;
HashMap<Integer,Node>hashmap=new HashMap<>();
public Node dfs(Node node){
Node nows=new Node();
nows.val=node.val;
hashmap.put(node.val,nows);
List<Node> list=node.neighbors;
ArrayList<Node> newlist=new ArrayList<>();
for(Node temp:list){
Node now;
if(!flag[temp.val]){
flag[temp.val]=true;
now=dfs(temp);
}else {
now=hashmap.get(temp.val);
}
newlist.add(now);
}
nows.neighbors=newlist;
return nows;
}
public Node cloneGraph(Node node) {
flag=new boolean[110];
Arrays.fill(flag,false);
if(node==null)
return null;
flag[node.val]=true;
return dfs(node);
}
}
最新文章
- D3.js 学习( 一)
- JS数字键盘
- Java TCP 程序
- to_char 详解
- PayPal 高级工程总监:读完这 100 篇文献,就能成大数据高手
- 如何使用highmaps制作中国地图
- 【转】vim - tab变空格
- div 并排
- 在mipsel-linux平台上的编译应用SQLite-3.5.9
- JS(三)
- 利用libevent的timer实现定时器interval
- Java对象序列化/反序列化的注意事项(转)
- Arduino 各种模块篇 粉尘传感器 dust sensor 空气质量检测
- class-提升方法Boosting
- 备份LeetCode OJ自己编写的代码
- java运行时could not open ........jvm.cfg问题的解决
- 第十八章 dubbo-monitor计数监控
- InstallShield: 1628 完成基于脚本的安装失败
- 温故而知新 前端日志上传新姿势 navigator.sendBeacon(信标)
- 在taro中跳转页面的时候执行两遍componentDidMount周期的原因和解决方法
热门文章
- 【noi 2.6_9272】偶数个数字3(DP)
- URAL - 1635 哈希区间(或者不哈希)+dp
- Django用户注册、登录
- DNS域名解析10步
- Java 对象的哈希值是每次 hashCode() 方法调用重计算么?
- Github markdown页面内跳转
- h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated
- es6 curry function
- chroot vs docker
- vuex &; redux