Clone Graph
2015-11-15 10:36
399 查看
Clone an undirected graph. Each node in the graph contains a
labeland a list of its
neighbors.
/** * 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<UndirectedGraphNode*, UndirectedGraphNode*> record; if(!node) return node; queue<UndirectedGraphNode*> queue; queue.push(node); while(!queue.empty()){ UndirectedGraphNode* nextNode = queue.front(); queue.pop(); if(!record.count(nextNode)){ UndirectedGraphNode* newNode = new UndirectedGraphNode(nextNode->label); record[nextNode] = newNode; } for(int i=0;i<nextNode->neighbors.size();i++){ UndirectedGraphNode* childNode = nextNode->neighbors[i]; if(!record.count(childNode)){ UndirectedGraphNode* newNode = new UndirectedGraphNode(childNode->label); record[childNode] = newNode; queue.push(childNode); } record[nextNode]->neighbors.push_back(record[childNode]); } } return record[node]; } };
相关文章推荐
- 常用NLP知名研究机构
- asp.net 中GridView控件实现全选及反选的功能
- Java 实现邮件的自动发送
- asp.net 中GridView控件实现全选及反选的功能
- "学霸"系统Alpha版本发布说明
- Fire Again
- 信息安全系统设计基础实验二—20135214万子惠20135227黄晓妍
- [LeetCode]80. Merge Two Sorted Lists合并两个排序链表
- [LeetCode]80. Merge Two Sorted Lists合并两个排序链表
- LCT细节注意
- 详解CSS position属性
- 部分银行卡bin
- 88 Merge Sorted Array
- MySQL入门
- 190 Reverse Bits
- 朱恒志 20135314 实验1和2 实验报告
- 36 Valid Sudoku
- Win10 TH2更新卡在44%现象的解决方法介绍
- Eclipse python 插件 离线安装
- 19 Remove Nth Node From End of List