首页 > 其他 > 详细

LeetCode: Clone Graph

时间:2014-03-09 07:46:29      阅读:443      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 public class Solution {
 2     public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
 3         Map<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<UndirectedGraphNode, UndirectedGraphNode>();
 4         Queue<UndirectedGraphNode> nodes = new LinkedList<UndirectedGraphNode>();
 5         if (node == null) return node;
 6         
 7         UndirectedGraphNode head = new UndirectedGraphNode(node.label);
 8         map.put(node, head);
 9         nodes.add(node);
10             
11         while (!nodes.isEmpty()) {
12             UndirectedGraphNode org = nodes.poll();
13             UndirectedGraphNode k = map.get(org);
14             for (UndirectedGraphNode t : org.neighbors) {
15                 UndirectedGraphNode n;
16                 if (!map.containsKey(t)) {
17                     n = new UndirectedGraphNode(t.label);
18                     map.put(t, n);
19                     nodes.add(t);//如果这是一个新的node,需要将其放入队列中,准备将其neighbors赋值。
20                 }
21                 else {
22                     n = map.get(t);
             //这里不再需要放入队列中,因为这个节点已经存在,说明它一定被创建过,一定也就被放入到队列中过。
23                 }
24                 k.neighbors.add(n);
25             }
26         }
27         return head;
28     }
29 }
bubuko.com,布布扣

LeetCode: Clone Graph,布布扣,bubuko.com

LeetCode: Clone Graph

原文:http://www.cnblogs.com/longhorn/p/3589499.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!