题目链接
英文链接:https://leetcode.com/problems/clone-graph/
中文链接:https://leetcode-cn.com/problems/clone-graph/
题目详述
给定无向连通图中一个节点的引用,返回该图的深拷贝(克隆)。图中的每个节点都包含它的值 val(Int) 和其邻居的列表(list[Node])。
示例:
1 | 输入: |
提示:
- 节点数介于 1 到 100 之间。
- 无向图是一个简单图,这意味着图中没有重复的边,也没有自环。
- 由于图是无向的,如果节点 p 是节点 q 的邻居,那么节点 q 也必须是节点 p 的邻居。
- 必须将给定节点的拷贝作为对克隆图的引用返回。
题目详解
- 类似于 LeetCode138-复制带随机指针的链表,不过 LeetCode138-复制带随机指针的链表 有更巧妙的方法进行解答。
- 每次克隆当前结点,当它存在邻居列表时,它的邻居也需要克隆,显然这是一个递归过程。
- 为了保证正确实现克隆,需要用一个
HashMap
存储源结点与克隆结点之间的映射关系。
1 | public class LeetCode_00133 { |