/* 图的复制,考虑到一点就是如果label相同时认为是同一节点,环的存在,因此是不可以再new,为了保证时间,用hashmap会比较快 */ Map<Integer,UndirectedGraphNode> hashMap=new HashMap(); public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) { if(node==null)return null; if(hashMap.containsKey(node.label)){ return hashMap.get(node.label); } UndirectedGraphNode clone=new UndirectedGraphNode(node.label); hashMap.put(node.label,clone); for(UndirectedGraphNode gn:node.neighbors){ clone.neighbors.add(cloneGraph(gn)); } return clone; }