首页 > 其他分享 >判断是不是完全二叉树

判断是不是完全二叉树

时间:2023-01-09 22:34:34浏览次数:35  
标签:node 判断 return 是不是 queue flag 二叉树 true

题目要求

给定一个二叉树,确定他是否是一个完全二叉树。

完全二叉树的定义:若二叉树的深度为 h,除第 h 层外,其它各层的结点数都达到最大个数,第 h 层所有的叶子结点都连续集中在最左边,这就是完全二叉树。(第 h 层可能包含 [1~2h] 个节点)

思路分析

可以借助之前层序遍历的思路
再设置一个flag,当第一次遇到节点为空时 flag设置为true
当第二次遇到null时判断flag如果为true则直接返回

代码参考

const queue = []
  if (!root) return true
  queue.push(root)
  let flag = false
  while (queue.length) {
    const node = queue.shift()
    if (!node) flag = true         // 如果node为null则flag为true
    else {
      if (queue.length && flag) return false
      queue.push(node.left)
      queue.push(node.right)
    }
  }
  return true

标签:node,判断,return,是不是,queue,flag,二叉树,true
From: https://www.cnblogs.com/zx529/p/17038703.html

相关文章