1361. 验证二叉树
二叉树上有 n  个节点,按从  0  到 n - 1  编号,其中节点  i  的两个子节点分别是  leftChild[i]  和  rightChild[i]。
只有 所有 节点能够形成且 只 形成 一颗   有效的二叉树时,返回  true;否则返回 false。
如果节点  i  没有左子节点,那么  leftChild[i]  就等于  -1。右子节点也符合该规则。
注意:节点没有值,本问题中仅仅使用节点编号。
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
   | 
 
 
 
 
  var validateBinaryTreeNodes = function (n, leftChild, rightChild) {   const inDegree = new Array(n).fill(0);
       for (let i = 0; i < n; i++) {     const l = leftChild[i];     const r = rightChild[i];     if (l !== -1) {       inDegree[l] += 1;     }     if (r !== -1) {       inDegree[r] += 1;     }   }
    let count = 0;   if (inDegree.filter((deg) => deg === 0).length !== 1) {     return false;   } else {     const que = [inDegree.indexOf(0)];     while (que.length) {       const node = que.shift();       count += 1;       if (count > n) {         break;       }       if (leftChild[node] !== -1) {         que.push(leftChild[node]);       }       if (rightChild[node] !== -1) {         que.push(rightChild[node]);       }     }     return n === count;   } };
 
  |