克隆图
给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)
图中的每个节点都包含它的值 val(int)和其邻居的列表(list[Node])
class Node {
public int val;
public List<Node> neighbors;
}
说白了,看了半天没懂,大概意思就是说???拷贝一个图?参考了别人的代码,自己还是没理解。等再看看。
感觉拿着 dfs 框架套上去就行了。
代码如下(C++):
class Solution {
public:
Node* cloneGraph(Node* node) {
unordered_map<Node*,Node*> mp; // 无序图
return dfs(node,mp); // 直接深度遍历,克隆
}
Node* dfs(Node* node,unordered_map<Node*,Node*> &mp){
if(!node) return NULL;
if(mp.count(node)) return mp[node];
Node* tmp = new Node(node -> val);
mp[node] = tmp;
for(Node* neighbor: node -> neighbors){
tmp -> neighbors.push_back(dfs(neighbor,mp));
}
return tmp;
}
};
放在最后
如果您喜欢我的文章,拜托点赞+收藏+关注,博主会根据大家喜好来推出相关系列文章~
更多精彩内容也可以访问我的博客Aelous-BLog