Skip to content

Commit 8c35a9f

Browse files
author
applewjg
committed
rename Clone\ Graph.h
1 parent 95e286a commit 8c35a9f

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

Clone Graph.h renamed to CloneGraph.h

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,29 +62,27 @@ class Solution {
6262
}
6363

6464
// BFS
65-
GraphNode *cloneGraph_2(GraphNode *node) {
66-
if (!node) return NULL;
67-
queue<GraphNode*> q;
65+
UndirectedGraphNode *cloneGraph_2(UndirectedGraphNode *node) {
66+
if (node == nullptr) {
67+
return nullptr;
68+
}
69+
unordered_map<UndirectedGraphNode*, UndirectedGraphNode*> nodesMap;
70+
nodesMap[node] = new UndirectedGraphNode(node->label);
71+
queue<UndirectedGraphNode*> q;
6872
q.push(node);
69-
MAP map;
70-
map[node] = new GraphNode(node->label);
71-
while (!q.empty())
72-
{
73-
GraphNode *oriNode = q.front(); q.pop();
74-
GraphNode *newNode = map[oriNode];
75-
for (int i = 0; i < oriNode->neighbors.size(); ++i)
76-
{
77-
GraphNode *oriNeighbor = oriNode->neighbors[i];
78-
if (map.find(oriNeighbor) != map.end()) {
79-
newNode->neighbors.push_back(map[oriNeighbor]);
80-
continue;
73+
while (!q.empty()) {
74+
UndirectedGraphNode* tmp = q.front();
75+
q.pop();
76+
for (int i = 0; i < tmp->neighbors.size(); ++i) {
77+
UndirectedGraphNode* neighbor = tmp->neighbors[i];
78+
if (nodesMap.find(neighbor) == nodesMap.end()) {
79+
UndirectedGraphNode* newNode = new UndirectedGraphNode(neighbor->label);
80+
nodesMap[neighbor] = newNode;
81+
q.push(neighbor);
8182
}
82-
GraphNode *newNeighbor = new GraphNode(oriNeighbor->label);
83-
newNode->neighbors.push_back(newNeighbor);
84-
map[oriNeighbor] = newNeighbor;
85-
q.push(oriNeighbor);
83+
nodesMap[tmp]->neighbors.push_back(nodesMap[neighbor]);
8684
}
8785
}
88-
return map[node];
86+
return nodesMap[node];
8987
}
90-
};
88+
};

0 commit comments

Comments
 (0)