package com.interview.books.fgdsb;
import com.interview.books.question300.TQ2_UnionFind;
/**
* Created_By: stefanie
* Date: 15-2-2
* Time: 上午9:57
*/
public class NLC9_ValidTree_UnionFind {
public boolean valid(int N, int[][] edges){
TQ2_UnionFind uf = new TQ2_UnionFind(N);
for(int i = 0; i < edges.length; i++){
int p1 = uf.find(edges[i][0]);
int p2 = uf.find(edges[i][1]);
if(p1 == p2) return false;
else uf.union(edges[i][0], edges[i][1]);
}
int p = uf.find(0);
for(int i = 1; i < N; i++){
if(uf.find(i) != p) return false;
}
return true;
}
public static void main(String[] args){
NLC9_ValidTree_UnionFind validator = new NLC9_ValidTree_UnionFind();
int[][] edges = new int[][]{{0,1}, {0,2}, {2,3}, {2,4}};
System.out.println(validator.valid(5, edges)); //true
edges = new int[][]{{0,1}, {1,2}, {0,2}, {2,3}, {2,4}};
System.out.println(validator.valid(5, edges)); //false
edges = new int[][]{{0,1}, {2,3}};
System.out.println(validator.valid(5, edges)); //false
}
}