958. 二叉树的完全性检验
给定一个二叉树,确定它是否是一个完全二叉树。
百度百科中对完全二叉树的定义如下:
若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)
链接
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 43 44 45 46 47 48 49 50 51 52
   | 
 
 
 
 
 
 
 
 
 
 
 
 
  function isCompleteTree(root: TreeNode | null): boolean {   if (root === null) return false   const nodeQue: TreeNode[] = [root]   let depth = 0   while(nodeQue.length) {     const nodes = nodeQue.splice(0)     const len = nodes.length     let isFindNull = false     let isFindNumAfterNull = false     depth++     for(let i = 0; i < len; i++) {       const node = nodes[i]       if (node.left === null) {         isFindNull = true       } else {         if (isFindNull) {           isFindNumAfterNull = true           break         }         nodeQue.push(node.left)       }       if (node.right === null) {         isFindNull = true       } else {         if (isFindNull) {           isFindNumAfterNull = true           break         }         nodeQue.push(node.right)       }     }     if (       isFindNumAfterNull ||       (nodeQue.length > 0 && len !== 2 ** (depth - 1))     ) return false   }   return true };
 
  |