当前位置: 首页 > news >正文

二叉树的完全性检验

给定一个二叉树的 root ,确定它是否是一个 完全二叉树 。

在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的,并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1 到 2h 节点之间的最后一级 h 。

示例 1:

输入:root = [1,2,3,4,5,6]
输出:true
解释:最后一层前的每一层都是满的(即,结点值为 {1} 和 {2,3} 的两层),且最后一层中的所有结点({4,5,6})都尽可能地向左。

示例 2:

输入:root = [1,2,3,4,5,null,7]
输出:false
解释:值为 7 的结点没有尽可能靠向左侧。

代码实现:

class Solution {int size = 0;int maxPosition = 0;public boolean isCompleteTree(TreeNode root) {dfs(root, 1);return size == maxPosition;}private void dfs(TreeNode root, int position) {if (root == null) {return;}size++;maxPosition = Math.max(position, maxPosition);dfs(root.left, 2 * position);dfs(root.right, 2 * position + 1);}
}

原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

视频讲解:二叉树完全性验证_哔哩哔哩_bilibili

http://www.lryc.cn/news/120274.html

相关文章:

  • 激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)
  • tp5中的事务处理
  • 论文总结《Towards Evaluating the Robustness of Neural Networks(CW)》
  • 2024重庆邮电大学软件工程809题库(带答案)
  • 三种目标检测方法(基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法)的区别
  • 制造业为什么要建设数字化供应链
  • webrtc Thread 和 TaskQueue 的 应用和思考
  • 无涯教程-Perl - pos函数
  • 【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建Java、Python项目
  • Java的Class类:每一个类都对应着一个Class对象
  • JavaScript预编译机制
  • 【ARM 嵌入式 编译系列 4.1 -- GCC 编译属性 likely与unlikely 学习】
  • 《算法竞赛·快冲300题》每日一题:“造电梯”
  • NSS [MoeCTF 2022]baby_file
  • 喜报!诚恒科技与赛时达科技达成BI金蝶云星空项目合作
  • Vscode python调试和运行环境设置
  • lua中执行luci.sys.call、luci.sys.exec、os.execute的区别
  • Python-OpenCV中的图像处理-模板匹配
  • 模拟队列(c++题解)
  • Redis_哨兵模式
  • Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?
  • MySQL 约束
  • unity实现角色体力功能【体力条+体力计算】
  • 【深度学习所有损失函数】在 NumPy、TensorFlow 和 PyTorch 中实现(1/2)
  • 七夕好物分享,哪些礼物适合送男/女朋友?这几款好物最为合适!
  • C语言学习系列-->看淡指针(2)
  • Java基础篇--Character 类
  • Flutter参考资料
  • sed命令如何正确修改ini配置文件
  • 【新版系统架构补充】-信息系统基础知识