LeetCode题解之Clone Graph

Posted 山里的小勇子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode题解之Clone Graph相关的知识,希望对你有一定的参考价值。

1、题目描述

 

2、问题分析

要遍历图,然后标记没有被复制的节点。

 

3、代码

 1 class Solution {
 2 
 3 private:
 4     unordered_map<Node*, Node*> m;
 5 
 6 public:
 7     Node* cloneGraph(Node* node) {
 8         if (node == NULL)
 9             return NULL;
10         
11         Node *copy = new Node(node->val, {});
12         queue<Node*> q;
13         m[node] = copy;
14         q.push(node);
15         
16         while (!q.empty()) {
17             Node *cur = q.front();
18             q.pop();
19             
20             for(Node* neighbor : cur->neighbors) {
21                 if (m.find(neighbor) == m.end()) {
22                    m[neighbor] = new Node(neighbor->val, {});
23                     q.push(neighbor);
24                 }
25                 m[cur]->neighbors.push_back(m[neighbor]);
26                 
27             }
28         }
29         return copy;
30     }
31 };

 

以上是关于LeetCode题解之Clone Graph的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode之广度优先搜索(BFS)专题-133. 克隆图(Clone Graph)

Leetcode Clone Graph

LeetCode-133-Clone Graph

[LeetCode] 133. Clone Graph

Clone Graph -- LeetCode

LeetCode 133: Clone Graph