每天一道LeetCode-----复制无向图
生活随笔
收集整理的這篇文章主要介紹了
每天一道LeetCode-----复制无向图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Clone Graph
原題鏈接Clone Graph
復制一個無向圖
遍歷一遍圖就可以了
代碼如下
/*** Definition for undirected graph.* struct UndirectedGraphNode {* int label;* vector<UndirectedGraphNode *> neighbors;* UndirectedGraphNode(int x) : label(x) {};* };*/ class Solution { public:UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {unordered_map<int, UndirectedGraphNode*> hash;return cloneGraph(node, hash);} private:UndirectedGraphNode* cloneGraph(UndirectedGraphNode* node, unordered_map<int, UndirectedGraphNode*>& hash){if(!node) return nullptr;/* hash記錄著label對應的節點,如果已經復制過,就直接返回 */if(hash.find(node->label) != hash.end())return hash[node->label];auto res = new UndirectedGraphNode(node->label);hash[res->label] = res;for(auto ptr : node->neighbors)res->neighbors.emplace_back(cloneGraph(ptr, hash));return res;} };本題主要就是深度優先遍歷無向圖,需要注意的是重復問題
總結
以上是生活随笔為你收集整理的每天一道LeetCode-----复制无向图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天一道LeetCode-----将字符
- 下一篇: 每天一道LeetCode-----存在一