zoukankan      html  css  js  c++  java
  • 一 克隆图

    广搜

    133 Clone Graph

        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            if (node == null) return node;
            LinkedList<UndirectedGraphNode> queue = new LinkedList<>();
            HashMap<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<>();
            queue.offer(node);
            UndirectedGraphNode copy = new UndirectedGraphNode(node.label);
            map.put(node, copy);
            while (!queue.isEmpty()){
                UndirectedGraphNode cur = queue.poll();
                for (int i = 0; i < cur.neighbors.size(); i++){
                    if (!map.containsKey(cur.neighbors.get(i))){
                        copy = new UndirectedGraphNode(cur.neighbors.get(i).label);
                        map.put(cur.neighbors.get(i), copy);
                        queue.offer(cur.neighbors.get(i));
                    }
                    map.get(cur).neighbors.add(map.get(cur.neighbors.get(i)));
                }
            }
            return map.get(node);
        }
    View Code
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            if (node == null) return node;
            LinkedList<UndirectedGraphNode> stack = new LinkedList<>();
            HashMap<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<>();
            stack.push(node);
            UndirectedGraphNode copy = new UndirectedGraphNode(node.label);
            map.put(node, copy);
            while (!stack.isEmpty()){
                UndirectedGraphNode cur = stack.poll();
                for (int i = 0; i < cur.neighbors.size(); i++){
                    if(!map.containsKey(cur.neighbors.get(i))){
                        copy = new UndirectedGraphNode(cur.neighbors.get(i).label);
                        map.put(cur.neighbors.get(i), copy);
                        stack.push(cur.neighbors.get(i));
                    }
                    map.get(cur).neighbors.add(map.get(cur.neighbors.get(i)));  
                }
                
            }
            return map.get(node);
        }
    View Code
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {  
            if(node == null)  
                return null;  
            HashMap<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<UndirectedGraphNode, UndirectedGraphNode>();  
            UndirectedGraphNode copy = new UndirectedGraphNode(node.label);  
            map.put(node,copy);  
            helper(node,map);  
            return copy;  
        }  
        private void helper(UndirectedGraphNode node, HashMap<UndirectedGraphNode, UndirectedGraphNode> map)  
        {  
            for(int i=0;i<node.neighbors.size();i++)  
            {   
                UndirectedGraphNode cur = node.neighbors.get(i);  
                if(!map.containsKey(cur))  
                {  
                    UndirectedGraphNode copy = new UndirectedGraphNode(cur.label);  
                    map.put(cur,copy);  
                    helper(cur,map);  
                }  
                map.get(node).neighbors.add(map.get(cur));  
            }  
        }  
    View Code
  • 相关阅读:
    //设N是一个四位数,它的9倍恰好是其反序数(例如:1234 的反序数是4321),求N的值。
    安装oracle后,电脑变卡变慢的解决办法
    JSONP
    vue-resource发起get、post、jsonp请求
    Vue实例的生命周期
    自定义全局指令让文本框获取焦点
    自定义全局按键修饰符
    es2017 提供的针对字符串填充的函数:padStart、padEnd
    自定义私有过滤器
    fiddler教程
  • 原文地址:https://www.cnblogs.com/whesuanfa/p/7007843.html
Copyright © 2011-2022 走看看