zoukankan      html  css  js  c++  java
  • [leetcode]Clone Graph

    Clone Graph,采用BFS,同时用一个Map记录原先节点和现在节点的映射,顺便可以用来做visited check。一开始有两个错误,一是null的时候也要返回null,二是有可能节点0也有指向0本身的邻居,所以在对neighbors做遍历前要先放到map里。

    public class Solution {
        HashMap<UndirectedGraphNode, UndirectedGraphNode> map = new HashMap<UndirectedGraphNode, UndirectedGraphNode>();
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            map.clear();
            return cloneNode(node);
        }
        
        private UndirectedGraphNode cloneNode(UndirectedGraphNode node)
        {
            if (node == null) return null;
            if (map.containsKey(node)) return map.get(node);
            else
            {
                UndirectedGraphNode copy = new UndirectedGraphNode(node.label);
                map.put(node, copy);
                for (UndirectedGraphNode n : node.neighbors)
                {
                    copy.neighbors.add(cloneNode(n));
                }
                return copy;
            }
        }
    }
    

      

  • 相关阅读:
    java中 == 与equals 的区别
    java中的多线程 // 基础
    MySQL-锁机制
    将博客搬至CSDN
    MySQL-事务
    MySQL-存储过程
    MySQL-触发器
    MySQL-视图
    Redis设置Auth认证保护
    PHP目前常见的五大运行模式
  • 原文地址:https://www.cnblogs.com/lautsie/p/3356392.html
Copyright © 2011-2022 走看看