zoukankan      html  css  js  c++  java
  • leetcode--Clone Graph

    Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors

     1 /**
     2  * Definition for undirected graph.
     3  * class UndirectedGraphNode {
     4  *     int label;
     5  *     ArrayList<UndirectedGraphNode> neighbors;
     6  *     UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList<UndirectedGraphNode>(); }
     7  * };
     8  */
     9 public class Solution {
    10     public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
    11         UndirectedGraphNode newNode = null;
    12         if(node != null){
    13             Map<UndirectedGraphNode, UndirectedGraphNode> org = new HashMap<UndirectedGraphNode,UndirectedGraphNode>();
    14             ArrayList<UndirectedGraphNode> alist = new ArrayList<UndirectedGraphNode>();
    15             alist.add(node);
    16             for(int i = 0; i < alist.size(); ++i){
    17                 UndirectedGraphNode temp = alist.get(i);
    18                 UndirectedGraphNode cloneNode = null;
    19                 if(!org.containsKey(temp)){
    20                     cloneNode = new UndirectedGraphNode(temp.label);
    21                     org.put(temp, cloneNode);
    22                 }
    23                 else
    24                     cloneNode = org.get(temp);                    
    25                 List<UndirectedGraphNode> nei = temp.neighbors;
    26                 for(int j = 0; j < nei.size(); ++j){
    27                     if(org.containsKey(nei.get(j)))
    28                         cloneNode.neighbors.add(org.get(nei.get(j)));
    29                     else{
    30                         UndirectedGraphNode clNode = new UndirectedGraphNode(nei.get(j).label);
    31                         alist.add(nei.get(j));
    32                         org.put(nei.get(j), clNode);
    33                         cloneNode.neighbors.add(clNode);
    34                     }                            
    35                 }
    36             }
    37             newNode = org.get(node);
    38         }
    39         return newNode;
    40     }
    41 }
  • 相关阅读:
    MySQL案例:一次单核CPU占用过高问题的处理
    编写你的第一个Django应用
    ks.cfg文件相关
    Kickstart部署多系统
    Kickstart部署之FTP架构
    Kickstart部署之HTTP架构
    Kickstart部署之NFS架构
    Kickstart无人值守原理及简介
    Linux下面Oracle实列实如何登录的
    welogic的受管理服务器无法启动
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3535486.html
Copyright © 2011-2022 走看看