133. Clone Graph

四刷。。

这傻屌题都四刷了么。。

public class Solution {
    Map<Integer, UndirectedGraphNode> map = new HashMap<>();
    public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
        if (node == null) return null;
    
        if (!map.containsKey(node.label)) {
            map.put(node.label, new UndirectedGraphNode(node.label));
        } 
        UndirectedGraphNode res = map.get(node.label);
        res.neighbors = new ArrayList<UndirectedGraphNode>();
        
        for (UndirectedGraphNode n : node.neighbors) {
            if (!map.containsKey(n.label)) {
                res.neighbors.add(cloneGraph(n));
            } else {
                res.neighbors.add(map.get(n.label));
            }
        }
        
        return res;
    }
}
posted @ 2016-12-11 03:30  哇呀呀..生气啦~  阅读(124)  评论(0)    收藏  举报