leetcode做题总结,题目Clone Graph 133
2015-01-27 04:38
585 查看
题目是复制一个图,方法是使用广度优先历遍,然后使用HASHMAP判断重复然后放入队列。像这种clone或者两者比较的题目有个好的方法是使用map使他们之间建立映射。
public class Solution { public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) { if(node == null) return null; Queue<UndirectedGraphNode> queue = new LinkedList<UndirectedGraphNode>(); HashMap<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<UndirectedGraphNode,UndirectedGraphNode>(); UndirectedGraphNode newHead = new UndirectedGraphNode(node.label); queue.offer(node); map.put(node, newHead); while(!queue.isEmpty()){ UndirectedGraphNode curr = queue.poll(); //List<UndirectedGraphNode> currNeighbors = curr.neighbors; for(UndirectedGraphNode aNeighbor: curr.neighbors){ if(!map.containsKey(aNeighbor)){ UndirectedGraphNode copy = new UndirectedGraphNode(aNeighbor.label); map.put(aNeighbor,copy); map.get(curr).neighbors.add(copy); queue.add(aNeighbor); }else{ map.get(curr).neighbors.add(map.get(aNeighbor)); } } } return newHead; } }
相关文章推荐
- leetcode做题总结,题目Remove Duplicates from Sorted ListI/II 2012/04/22
- leetcode做题总结,题目Binary Tree Inorder Traversal 2012/08/27
- leetcode做题总结,题目Add Two Numbers /Add Binary 2011/11/01&2012/04/02
- leetcode做题总结,题目Search Insert Position 2012/03/03
- LeetCode133:Clone Graph
- leetcode做题总结,题目Swap Nodes in Pairs 2012/02/14
- leetcode做题总结,题目Best Time to Buy and Sell Stock 2012/10/30
- leetcode做题总结,题目First Missing Positive 2012/03/08
- leetcode做题总结,题目Sort List 2013/11/16
- leetcode做题总结,题目Longest Consecutive Sequence 2013/02/13
- leetcode做题总结,题目Set Matrix Zeroes 2012/04/06
- leetcode做题总结,题目Validate Binary Search Tree 2012/08/31
- leetcode做题总结,题目Merge k Sorted Lists 2012/02/13
- leetcode做题总结,题目Spiral Matrix I/II 2012/03/24
- leetcode做题总结,题目Integer to Roman 2012/01/15
- leetcode做题总结,题目Merge Two Sorted Lists 2012/03/30
- leetcode做题总结,题目Rotate List 2012/03/27
- leetcode做题总结,题目Pow(x, n)-------- 2012/03/19
- leetcode做题总结,题目Search a 2D MatrixI/II 2012/04/06
- leetcode做题总结,题目Copy List with Random Pointer 2013/10/03