1
import java.util.Arrays;11
Arrays.fill(parents, -1);15
if (parents[x] == -1) {18
return parents[x] = find(parents[x]);21
boolean union(int a, int b) {22
int pA = find(a), pB = find(b);36
public boolean validateBinaryTreeNodes(int n, int[] leftChild, int[] rightChild) {38
int[] indeg = new int[n];39
for (int i = 0; i < n; i++) {40
int l = leftChild[i], r = rightChild[i];43
* i: parent node l: left child node if i and l are already connected or the in degree of l46
if (!uf.union(i, l) || ++indeg[l] > 1) {51
// Same thing for parent node and the right child node52
if (!uf.union(i, r) || ++indeg[r] > 1) {57
return uf.connected();