clone-graph

题目

题目连接
clone-graph_第1张图片
题目大意:复制一个图

思路

dfs图 并且复制

  1. 如果访问过或者为null则跳过
  2. 标记每一个头节点
  3. 复制每一孩子节点

代码

import java.util.HashSet;

public class Solution {
    HashSet<UndirectedGraphNode> visited = new HashSet<UndirectedGraphNode>();
    //dfs图 复制每一个节点
    public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
        if(node==null){
            return null;
        }
        //mark every node
        if(visited.contains(node)){
            UndirectedGraphNode temp = new UndirectedGraphNode(node.label);
            temp.neighbors.addAll(node.neighbors);
            return temp;
        }
        visited.add(node);
        UndirectedGraphNode head = new UndirectedGraphNode(node.label);
        for(int i=0;i<node.neighbors.size();i++){
                head.neighbors.add(cloneGraph(node.neighbors.get(i)));


        }
        return head;
    }
}
添加笔记

你可能感兴趣的:(clone-graph)