LeetCode – Refresh – Clone Graph
2015-03-19 04:32
423 查看
1. Use BFS to search the graph.
2. Create a hashtable to record the one to one mapping.
2. Create a hashtable to record the one to one mapping.
/** * 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) return NULL; unordered_map<UndirectedGraphNode *, UndirectedGraphNode *> mapping; UndirectedGraphNode *result = new UndirectedGraphNode(node->label); queue<UndirectedGraphNode *> q; mapping[node] = result; q.push(node); while (!q.empty()) { UndirectedGraphNode *current = q.front(); q.pop(); for (int i = 0; i < current->neighbors.size(); i++) { if (mapping.find(current->neighbors[i]) == mapping.end()) { UndirectedGraphNode *newNode = new UndirectedGraphNode(current->neighbors[i]->label); q.push(current->neighbors[i]); mapping[current->neighbors[i]] = newNode; mapping[current]->neighbors.push_back(newNode); } else { mapping[current]->neighbors.push_back(mapping[current->neighbors[i]]); } } } return result; } };
相关文章推荐
- [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
- 146_leetcode_Clone Graph
- [LeetCode] 克隆图 Clone a Graph
- [leetcode] Clone Graph
- leetcode--Clone Graph
- [Leetcode]Clone Graph
- LeetCode: Clone Graph
- LeetCode 133 Clone Graph (BFS || DFS)
- LeetCode || Clone Graph
- leetcode之Clone Graph
- Clone Graph leetcode
- LeetCode-Clone Graph-克隆无向图