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

leetcode-二叉树的层序遍历-113

题目要求
  给定一个二叉树,确定他是否是一个完全二叉树。完全二叉树的定义:若二叉树的深度为 h,除第 h 层外,其它各层的结点数都达到最大个数,第 h 层所有的叶子结点都连续集中在最左边,这就是完全二叉树。
解析
  广度优先搜索,入队出队
代码实现

class Solution {
public:bool isCompleteTree(TreeNode* root) {//如果是空树,满足完全二叉树要求if(root == nullptr)return true;//增加队列进行记录节点queue<TreeNode*> q;//加入跟节点q.push(root);//增加标志位,用于记录叶子第一次出现空的位置bool flag = false;//如果队列中没东西了,说明整个树遍历完了while(!q.empty()){//用于记录队列中的元素个数int sz = q.size();for(int i = 0; i < sz; i++){//用于记录队列中当前处理的节点TreeNode* cur = q.front();//将处理的元素移出队列q.pop();//首次遇到空的节点,将标志为设置为trueif(cur == nullptr)flag = true;else{//如果已经有空节点,那不应该后面在有节点,否则不满足完全二叉树要求,返回falseif(flag)return false;else {//将当前节点的左节点和右节点加入队列q.push(cur->left);q.push(cur->right);}}}}return true;}
};
http://www.lryc.cn/news/582778.html

相关文章:

  • 基于Java+Maven+Testng+RestAssured+Allure+Jenkins搭建一个接口自动化框架
  • 谁主沉浮:人工智能对未来信息技术发展路径的影响研究
  • 基于 Rust 的Actix Web 框架的应用与优化实例
  • 从零构建MCP服务器:FastMCP实战指南
  • 基于物联网架构的温室环境温湿度传感器节点设计
  • 微信小程序控制空调之接收MQTT消息
  • Maven 打包排除特定依赖的完整指南(详细方法 + 示例)
  • 作业03-SparkSQL开发
  • 无缝矩阵的音频合成与音频分离功能详解
  • Rust BSS段原理与实践解析
  • RustFS一款Rust 驱动的 高性能 分布式存储系统
  • Modbus TCP转Profinet网关实现视觉相机与西门子PLC配置实例研究
  • Tomcat:启用https(Windows)
  • 传输层协议TCP、UDP
  • CI/CD — DevOps概念之实现k8s持续交付持续集成(一)
  • 数据结构:位图
  • IDEA Maven报错 无法解析 com.taobao:parent:pom:1.0.1【100%解决 此类型问题】
  • 分布式光纤传感:为储能安全保驾护航
  • 广度优先与深度优先遍历核心逻辑理解及实践
  • 关于 scrapy框架 详解
  • OpenCV在Visual Studio 2022下的配置
  • Android 中的多线程编程全面解析
  • 【机器学习笔记 Ⅲ】5 强化学习
  • 【docker】linux CentOS docker 安装流程
  • Centos和麒麟系统如何每天晚上2点10分定时备份达梦数据库
  • Redis:高性能内存数据库与缓存利器
  • java内存缓存实现 与 redis缓存实现 (ConcurrentHashMap 应用)
  • Mac安装Docker(使用orbstack代替)
  • 从深度学习的角度看自动驾驶
  • ubuntu24.04(vmware workstation 17.6pro)无法安装vmtools的问题解决