[leetcode]133. Clone Graph 克隆图
2024-08-22 03:01:25
题目
给定一个无向图的节点,克隆能克隆的一切
思路
1--2
|
3--5
以上图为例,
node neighbor
1 2, 3
2 1
3 1, 5
5 3
首先从1开始, 将(node,newNode)put到HashMap中
node newNode
1 1
然后遍历该node的所有neighbor
node neighbor
1 2, 3
此时遍历到2
将(node,newNode)put到HashMap中
node newNode
1 1 -- 2 // newNode.neighbors.add(clone)
2 2
代码
public class Solution { Map<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<>(); public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
if (node == null) {
return null;
} //DFS
if (map.containsKey(node)) {
return map.get(node);
} UndirectedGraphNode newNode = new UndirectedGraphNode(node.label);
map.put(node, newNode);
for (UndirectedGraphNode nei : node.neighbors) {
UndirectedGraphNode clone = cloneGraph(nei);
newNode.neighbors.add(clone);
}
return newNode;
}
}
最新文章
- tp5 中 model 的新增方法
- LeetCode ";Design Twitter";
- str_replace vs preg_replace
- C语言的执行
- mongodb基础系列——数据库查询数据返回前台JSP(二)
- httpsclient 自动获取证书 无证书访问 验证过能直接用
- ActivityNotFoundException: No Activity found to handle Intent
- [转贴]Eclipse IDE for c++配置
- 0301——Notification 通知
- JavaService实现Windows服务
- [收藏] Java源码阅读的真实体会
- 洛谷 P1055 ISBN号码【字符串+模拟】
- Java集合中的AbstractMap抽象类
- 20145237 《Java程序设计》第10周学习总结
- __x__(22)0907第四天__ 垂直外边距重叠
- calcOpticalFlowPyrLK
- Python人工智能之路 - 第二篇 : 算法实在太难了有现成的直接用吧
- npm和node的版本过低时的解决办法
- Java调用OCR进行图片识别
- 2018软工实践—Alpha冲刺(4)