[leetcode]Clone Graph
2013-12-29 23:02
337 查看
建立一个映射,old_graph -> clone_graph 节点的映射。
如果不存在就新建,如果存在就把映射的节点push_back到neighbor里面
如果不存在就新建,如果存在就把映射的节点push_back到neighbor里面
/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : label(x) {}; * }; */ class Solution { public: UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { if( node == nullptr ) return nullptr; unordered_map<UndirectedGraphNode * , UndirectedGraphNode *> otn; otn[node] = new UndirectedGraphNode(node -> label); queue<UndirectedGraphNode *> que; que.push(node); while(!que.empty()){ UndirectedGraphNode* node = que.front() ; que.pop(); int size = node -> neighbors.size(); for(int i = 0 ; i < size ; i ++){ if(otn.find(node -> neighbors[i]) == otn.end()){ UndirectedGraphNode * tmp = new UndirectedGraphNode(node -> neighbors[i] -> label); otn[node] -> neighbors.push_back(tmp); otn[node -> neighbors[i]] = tmp; que.push(node -> neighbors[i]); }else{ otn[node] -> neighbors.push_back(otn[node -> neighbors[i]]); } } } return otn[node]; } };
相关文章推荐
- 用NDK构建osg库到Android 平台几点经验
- 微信公众平台开发教程第20篇-新手解惑40则
- 第一次用python 写的简单爬虫 记录在自己的博客
- linux i2c 驱动之一
- 微信公众平台开发教程第19篇-应用实例之人脸检测
- 2013人人笔试题
- 比特币深度分析
- 2013第52周日
- 对进度条的通用封装实现
- Android 系统编译
- 微信公众帐号开发教程第18篇-应用实例之音乐搜索
- 软件安装: RPM, SRPM 与 YUM 功能
- linux 2.6x内核升级
- nginx的文件异步io
- Common Lisp学习之十一:使用宏
- 微信公众帐号开发教程第17篇-应用实例之智能翻译
- Poco::ThreadPool
- Windows服务编程Demo
- Common Lisp学习之十:输出格式化控制与高级循环控制
- 插入排序之希尔排序(Shell Sort)