* Clone Graph
来源:互联网 发布:千牛软件何用 编辑:程序博客网 时间:2024/06/16 04:05
class Solution {
public:
UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
if(node==NULL) return NULL;
map<UndirectedGraphNode*,UndirectedGraphNode*>copied;
queue<UndirectedGraphNode *>q;
q.push(node);
copied[node]=new UndirectedGraphNode(node->label);
while(!q.empty())
{
UndirectedGraphNode *cur=q.front();
q.pop();
for(int i=0;i<cur->neighbors.size();i++)
{
if(copied.find(cur->neighbors[i])!=copied.end())
copied[cur]->neighbors.push_back(copied[cur->neighbors[i]]); //copied[cur]
else
{
UndirectedGraphNode *newnode=new UndirectedGraphNode (cur->neighbors[i]->label);
copied[cur->neighbors[i]]=newnode;
copied[cur]->neighbors.push_back(newnode);
q.push(cur->neighbors[i]);
}
}
}
return copied[node];
}
};
public:
UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
if(node==NULL) return NULL;
map<UndirectedGraphNode*,UndirectedGraphNode*>copied;
queue<UndirectedGraphNode *>q;
q.push(node);
copied[node]=new UndirectedGraphNode(node->label);
while(!q.empty())
{
UndirectedGraphNode *cur=q.front();
q.pop();
for(int i=0;i<cur->neighbors.size();i++)
{
if(copied.find(cur->neighbors[i])!=copied.end())
copied[cur]->neighbors.push_back(copied[cur->neighbors[i]]); //copied[cur]
else
{
UndirectedGraphNode *newnode=new UndirectedGraphNode (cur->neighbors[i]->label);
copied[cur->neighbors[i]]=newnode;
copied[cur]->neighbors.push_back(newnode);
q.push(cur->neighbors[i]);
}
}
}
return copied[node];
}
};
0 0
- 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
- Java多线程
- win7创建用户以及设置为管理员的操作
- ubuntu 开机出现grub rescue修复方法
- poj2031(prime()double printf 不能用%lf)
- ECMAScript5对DOM模型Node的操作
- * Clone Graph
- mysql原生态简单操作数据库
- Java设计模式 单例设计模式
- 有些美好,是属于自己的
- jquery如何判断checkbox(复选框)是否被选中
- 一步一步写正则 1:金额正则表达式
- 数据清洗小记(7):判断是否为日期函数
- Excel Sheet Column Number
- AMQP server on c ontroller:5672 is unreachable: [Errno 113] EHOSTUNREACH. Trying again in 2 seconds.