LeetCode 133 Clone Graph
2015-04-21 10:52
836 查看
题目
复制无向图
代码
public class Solution {
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
if(node == null){
return null;
}
HashMap<UndirectedGraphNode,UndirectedGraphNode> record = new HashMap<UndirectedGraphNode,UndirectedGraphNode>();
LinkedList<UndirectedGraphNode> queue = new LinkedList<UndirectedGraphNode>();
UndirectedGraphNode copyhead = new UndirectedGraphNode(node.label);
record.put(node,copyhead);
queue.add(node);
while(!queue.isEmpty()){
UndirectedGraphNode cur = queue.poll();
List<UndirectedGraphNode> neighbors = cur.neighbors;
UndirectedGraphNode copyCur = record.get(cur);
for(int i= 0;i<neighbors.size();i++){
UndirectedGraphNode curNeighbor = neighbors.get(i);
if(record.containsKey(curNeighbor)){
UndirectedGraphNode copycurNeighbor = record.get(curNeighbor);
copyCur.neighbors.add(copycurNeighbor);
}
else{
UndirectedGraphNode copycurNeighbor = new UndirectedGraphNode(curNeighbor.label);
copyCur.neighbors.add(copycurNeighbor);
record.put(curNeighbor,copycurNeighbor);
queue.add(curNeighbor);
}
}
}
return copyhead;
}
}
典型的DFS和BFS
复制无向图
代码
public class Solution {
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
if(node == null){
return null;
}
HashMap<UndirectedGraphNode,UndirectedGraphNode> record = new HashMap<UndirectedGraphNode,UndirectedGraphNode>();
LinkedList<UndirectedGraphNode> queue = new LinkedList<UndirectedGraphNode>();
UndirectedGraphNode copyhead = new UndirectedGraphNode(node.label);
record.put(node,copyhead);
queue.add(node);
while(!queue.isEmpty()){
UndirectedGraphNode cur = queue.poll();
List<UndirectedGraphNode> neighbors = cur.neighbors;
UndirectedGraphNode copyCur = record.get(cur);
for(int i= 0;i<neighbors.size();i++){
UndirectedGraphNode curNeighbor = neighbors.get(i);
if(record.containsKey(curNeighbor)){
UndirectedGraphNode copycurNeighbor = record.get(curNeighbor);
copyCur.neighbors.add(copycurNeighbor);
}
else{
UndirectedGraphNode copycurNeighbor = new UndirectedGraphNode(curNeighbor.label);
copyCur.neighbors.add(copycurNeighbor);
record.put(curNeighbor,copycurNeighbor);
queue.add(curNeighbor);
}
}
}
return copyhead;
}
}
public class Solution { public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) { if(node == null){ return null; } HashMap<UndirectedGraphNode,UndirectedGraphNode> record = new HashMap<UndirectedGraphNode,UndirectedGraphNode>(); UndirectedGraphNode copyhead = new UndirectedGraphNode(node.label); record.put(node,copyhead); useme(record,node); return copyhead; } public void useme(HashMap<UndirectedGraphNode,UndirectedGraphNode> record,UndirectedGraphNode node){ for(int i=0;i<node.neighbors.size();i++){ UndirectedGraphNode curNeighbor = node.neighbors.get(i); if(!record.containsKey(curNeighbor)){ UndirectedGraphNode copyCurNeighbor = new UndirectedGraphNode(curNeighbor.label); record.put(curNeighbor,copyCurNeighbor); useme(record,curNeighbor); } record.get(node).neighbors.add(record.get(curNeighbor)); } } }
典型的DFS和BFS
相关文章推荐
- LeetCode(133) Clone Graph
- [Leetcode 133, Medium] Clone Graph
- LeetCode 133: Clone Graph
- LeetCode133 Clone Graph
- Leetcode 133 Clone Graph
- leetcode 133 clone-graph 克隆图(图的遍历算法)
- LeetCode(133) Clone Graph
- LeetCode133:Clone Graph
- LeetCode: Clone Graph [133]
- [leetcode-133]Clone Graph(java)
- leetcode 133: Clone Graph
- Leetcode 133 Clone Graph
- leetcode_c++:图:Clone Graph(133)
- Java for LeetCode 133 Clone Graph
- [leetcode] 133 clone graph bfs
- [leetcode] 133 Clone Graph
- leetcode——133——Clone Graph
- leetcode || 133、Clone Graph
- [leetcode 133]Clone Graph
- leetcode做题总结,题目Clone Graph 133