133. Clone Graph
来源:互联网 发布:淘宝客qq群推广软件 编辑:程序博客网 时间:2024/05/17 13:40
/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : label(x) {}; * }; */ //72ms ac //实际上不应该这么写,把hash放到类里面,那么每一次复制图都会增大hash,所克隆的图失效的时候会有相应函数进行内存回收, //而此时hash中还存储了相应的lable和指针,总之而且会对之后克隆图造成影响, //所以应该在函数内建hashclass Solution {public: unordered_map<int,UndirectedGraphNode *> m; UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { if(!node) return NULL; UndirectedGraphNode *head=new UndirectedGraphNode(node->label); for(int i=0;i<node->neighbors.size();i++) { if(node->neighbors[i]==node) head->neighbors.push_back(head); else if(m.find(node->neighbors[i]->label)!=m.end() ) head->neighbors.push_back(m[node->neighbors[i]->label]); else { UndirectedGraphNode *temp=cloneGraph(node->neighbors[i]); m[node->neighbors[i]->label]=temp; head->neighbors.push_back(temp); } } return head; }};
//72ms acclass Solution {public: UndirectedGraphNode *copy_graph(UndirectedGraphNode *node,unordered_map<int,UndirectedGraphNode *> &m) { UndirectedGraphNode *head=new UndirectedGraphNode(node->label); for(int i=0;i<node->neighbors.size();i++) { if(node->neighbors[i]==node) head->neighbors.push_back(head); else if(m.find(node->neighbors[i]->label)!=m.end() ) head->neighbors.push_back(m[node->neighbors[i]->label]); else { UndirectedGraphNode *temp=copy_graph(node->neighbors[i],m); m[node->neighbors[i]->label]=temp; head->neighbors.push_back(temp); } } return head; } UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { if(!node) return NULL; unordered_map<int,UndirectedGraphNode *> m; return copy_graph(node,m); }};
0 0
- LeetCode 133. Clone Graph
- [Leetcode] 133. Clone Graph
- [leetcode] 133.Clone Graph
- 133. Clone Graph
- Leetcode 133. Clone Graph
- 133. Clone Graph LeetCode
- 133. Clone Graph
- LeetCode 133. Clone Graph
- leetcode 133. Clone Graph
- 133. Clone Graph
- 133. Clone Graph
- LeetCode *** 133. Clone Graph
- leetcode-133. Clone Graph
- LeetCode 133. Clone Graph
- 133. Clone Graph
- 133. Clone Graph
- 133. Clone Graph
- 133. Clone Graph
- Java-异常
- 关于线程
- Swift自定义初始化方法
- 多级城市联动
- 设计模式-2-观察者模式(1)
- 133. Clone Graph
- Java基础知识:equals;有参无参
- 多线程开发和Socket技术
- 常用的布局和View常用属性
- 对前端的一点小理解
- 销售员
- HDU2034--人见人爱A-B
- Web-page Classification through Summarization,2004
- ios解决http上传乱码问题