LEEDCODE: Clone Graph
来源:互联网 发布:av杂志在淘宝上怎么买 编辑:程序博客网 时间:2024/05/17 02:50
Clone an undirected graph. Each node in the graph contains a label
and a list of its neighbors
.
OJ's undirected graph serialization:
Nodes are labeled uniquely.
We use#
as a separator for each node, and ,
as a separator for node label and each neighbor of the node.As an example, consider the serialized graph {0,1,2#1,2#2,2}
.
The graph has a total of three nodes, and therefore contains three parts as separated by #
.
- First node is labeled as
0
. Connect node0
to both nodes1
and2
. - Second node is labeled as
1
. Connect node1
to node2
. - Third node is labeled as
2
. Connect node2
to node2
(itself), thus forming a self-cycle.
Visually, the graph looks like the following:
1 / \ / \ 0 --- 2 / \ \_/
这题的重点是不要重复复制,所以我用map对每个节点做了映射。
/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : label(x) {}; * }; */class Solution {public: map<UndirectedGraphNode *, UndirectedGraphNode *> themap; UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { if(node == NULL) return node; themap.clear(); return cloneGraphInternal(node); } UndirectedGraphNode *cloneGraphInternal(UndirectedGraphNode *node) { UndirectedGraphNode *ugn = new UndirectedGraphNode(node->label); themap[node] = ugn; for(int ii = 0; ii < node->neighbors.size(); ii ++) { if(themap.count(node->neighbors[ii]) > 0) { ugn->neighbors.push_back(themap[node->neighbors[ii]]); } else { UndirectedGraphNode *ugn2 = cloneGraphInternal(node->neighbors[ii]); themap[node->neighbors[ii]] = ugn2; ugn->neighbors.push_back(themap[node->neighbors[ii]]); } } return ugn; }};
0 0
- LEEDCODE: Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- Clone Graph
- 微信开发相关的一些资源
- Application设置全局变量以及传值
- 俦核显林只倨毁好导毫
- redis windows下的环境搭建
- 类的加载
- LEEDCODE: Clone Graph
- java.lang.UnsupportedClassVersionError: Bad version number in XX.class file解决办法
- 一个通用的makefile写法,自动推导文件的依赖关系【转】
- 通过live555实现H264 RTSP直播
- Servlet 生命周期、工作原理
- hdu 1496 Equations (暴力+hash)
- gcc 编译器对 inline 函数的支持
- windows下 Qt 静态编译
- 百度地图混淆代码后地图崩溃问题