leetcode-133. Clone Graph
来源:互联网 发布:js 获取object类型 编辑:程序博客网 时间:2024/06/06 15:01
考察点:图,DFS;
思路:就是用一个map记录对应label的node指针,克隆了的话就直接返回指向该node的指针,没有的话就new一个然后再对它进行递归添加节点。这个函数返回的是一个节点,而且该节点的所有neighbors都找全了,所以mp中有的话就直接返回就行。要从宏观角度看这个函数。
C++代码:
/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : label(x) {}; * }; */class Solution {public: unordered_map<int, UndirectedGraphNode*> mp; UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { UndirectedGraphNode * root = NULL; if (node) { if (mp.find(node->label) == mp.end()) { root= new UndirectedGraphNode(node->label); mp[node->label] = root; } else { root = mp[node->label]; return root; } for (int i=0; i<node->neighbors.size(); i++) { UndirectedGraphNode *temp = cloneGraph(node->neighbors[i]); root->neighbors.push_back(temp); } } return root; }};
0 0
- LeetCode 133. Clone Graph
- [Leetcode] 133. Clone Graph
- [leetcode] 133.Clone Graph
- Leetcode 133. Clone Graph
- 133. Clone Graph LeetCode
- LeetCode 133. Clone Graph
- leetcode 133. Clone Graph
- LeetCode *** 133. Clone Graph
- leetcode-133. Clone Graph
- LeetCode 133. Clone Graph
- [LeetCode] 133. Clone Graph
- LeetCode: 133. Clone Graph
- Leetcode-133. Clone Graph
- Leetcode 133. Clone Graph
- LeetCode 133. Clone Graph
- leetcode 133. Clone Graph
- [LeetCode]133. Clone Graph
- 【leetcode】133. Clone Graph
- SQL 盲注
- js动态的引入头文件
- 设计模式之责任链模式
- lintcode刷题(python)(1)
- Redis源码剖析和注释(十九)--- Redis 事件处理实现
- leetcode-133. Clone Graph
- Jenkins进阶系列之——10Publish Over SSH插件
- 回溯法--------n后问题
- Vue1.0接口请求之vue-resource全攻略
- Cinder服务安装和配置
- 树状数组
- 双系统安装:win10+ubuntu16.04LTS
- ROS 运动规划 (Motion Planning): MoveIt! 与 OMPL
- Nova 中的一些基本概念与操作(2)