leetcode---Clone Graph
来源:互联网 发布:c语言英文单词变复数 编辑:程序博客网 时间:2024/06/06 06:37
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 node 0 to both nodes 1 and 2.
Second node is labeled as 1. Connect node 1 to node 2.
Third node is labeled as 2. Connect node 2 to node 2 (itself), thus forming a self-cycle.
Visually, the graph looks like the following:
1 / \ / \0 --- 2 / \ \_/
/** * 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 == NULL) return NULL; queue<UndirectedGraphNode *> q; map<UndirectedGraphNode*, UndirectedGraphNode*> m; q.push(node); while(!q.empty()) { UndirectedGraphNode *nowNode = q.front(); q.pop(); if(!m.count(nowNode)) { UndirectedGraphNode *newNode = new UndirectedGraphNode(nowNode->label); m[nowNode] = newNode; } for(int i=0; i<nowNode->neighbors.size(); i++) { UndirectedGraphNode *neighNode = nowNode->neighbors[i]; if(!m.count(neighNode)) { UndirectedGraphNode *newNode = new UndirectedGraphNode(neighNode->label); m[neighNode] = newNode; q.push(neighNode); } m[nowNode]->neighbors.push_back(m[neighNode]); } } return m[node]; }};
0 0
- LeetCode[Graph]: Clone Graph
- [LeetCode] CLone Graph
- LeetCode:Clone Graph
- [leetcode]Clone Graph
- Leetcode: Clone Graph
- [LeetCode] Clone Graph
- LeetCode题解:Clone Graph
- [LeetCode]Clone Graph
- leetcode Clone Graph
- leetcode-Clone Graph
- LeetCode | Clone Graph
- Leetcode: Clone Graph
- [LeetCode] Clone Graph
- LeetCode OJ:Clone Graph
- Leetcode Clone Graph
- [Leetcode] Clone Graph (Java)
- Clone Graph - LeetCode
- 【leetcode】Clone Graph
- Windows 10 VS2015 环境下安装使用BLAS线性代数库
- 2.环境搭建
- 这是一个发送Email的方法,可以附加一个附件也可以改成多个附件。向量键和向量值后面再发表。
- java中 反射机制详解
- 【C++研发面试笔记】2. 多态性
- leetcode---Clone Graph
- 互联网公司iOS开发工程师面试必看(最全知识点梳理)
- macOS系统初体验
- [项目需求]c# WPF
- 安卓刷量技术揭秘(一) 工具篇
- 从二叉堆到左式堆
- 静态方法加锁,和非静态方法加锁区别
- Java基础--集合List-ArrayList
- Python的enumerater