Graph Valid Tree
Input: n = 5, and edges = [[0,1], [0,2], [0,3], [1,4]]
Output: trueInput: n = 5, and edges = [[0,1], [1,2], [2,3], [1,3], [1,4]]
Output: false if(edges.length != n-1)
return false;
Map<Integer,Set<Integer>> map = buildTree(n,edges);
Queue<Integer> queue = new LinkedList<>();
Set<Integer> hash = new HashSet<>();
queue.offer(0);
hash.add(0);
while(!queue.isEmpty()){
int node = queue.poll();
for(int nb : map.get(node)){
if(hash.contains(nb)){
continue;
}
hash.add(nb);
queue.offer(nb);
}
}
return hash.size() == n;
}
public Map<Integer,Set<Integer>> buildTree(int n, int[][] edges){
Map<Integer,Set<Integer>> map = new HashMap<>();
for(int i = 0; i < n;i++){
map.put(i, new HashSet<>());
}
for(int i = 0; i < edges.length;i++){
int u = edges[i][0];
int v = edges[i][1];
map.get(u).add(v);
map.get(v).add(u);
}
return map;
}Last updated