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

百度百科中对完全二叉树的定义如下:

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

示例 1:

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

示例 2:

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

提示:

  1. 树中将会有 1 到 100 个结点。
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool isCompleteTree(TreeNode* root) {if(!root) return false;queue<TreeNode *> qu;qu.push(root);int flag = 1;while(!qu.empty()){TreeNode *s = qu.front();qu.pop();if(flag == 1){if(s->left && s->right){qu.push(s->left);qu.push(s->right);}else if(s->left && !s->right){qu.push(s->left);flag = 0;}else if(!s->left && !s->right){flag = 0;}else if(!s->left && s->right){return false;}}else{if(s->left || s->right)return false;}} return true;}
};

958. 二叉树的完全性检验相关推荐

  1. 958. 二叉树的完全性检验 golang

    958. 二叉树的完全性检验 给定一个二叉树,确定它是否是一个完全二叉树. 百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数 ...

  2. 2021- 10 -9 LeetCode 958. 二叉树的完全性检验(待补完)

    二叉树的完全性检验 给定一个二叉树,确定它是否是一个完全二叉树. 若设二叉树的深度为 h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就 ...

  3. leetcode 958.二叉树的完全性检验 Java

    二叉树的完全性检验 题目链接 描述 示例 初始代码模板 代码 题目链接 https://leetcode-cn.com/problems/check-completeness-of-a-binary- ...

  4. LeetCode 958. 二叉树的完全性检验(层序遍历)

    1. 题目 给定一个二叉树,确定它是否是一个完全二叉树. 百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 h 层所有的 ...

  5. 【LeetCode笔记】958. 二叉树的完全性检验(Java、二叉树、BFS)

    文章目录 题目描述 思路 && 代码 层级遍历法 BFS 二刷 题目描述 考察对完全二叉树性质的理解 思路 && 代码 层级遍历法 一开始试了自底向上的DFS,过了90 ...

  6. 前序中序、后序中序遍历创建二叉树,并检验是否是二叉搜索树,若是则转换为双向链表

    finalbst.h //该程序的作用是根据所给的前序序列以及中序序列或者中序序列以及后序序列创建二叉树 #include <iostream> #include <vector&g ...

  7. 二叉树层序遍历(广度优先搜索)基础概念与经典题目(Leetcode题解-Python语言)

    二叉树的广度优先搜索即从上到下.从左到右地进行搜索,对于层序遍历(Level Order)问题,即依次遍历第一层节点.第二层节点-等,基本可以秒杀. 广度优先搜索是通过队列来实现的,python中优先 ...

  8. 【Leetcode | 02】二叉树、线性表目录

    二叉树 序号 题号 1 94. 二叉树的中序遍历 2 95. 不同的二叉搜索树 II 3 96. 不同的二叉搜索树 4 98. 验证二叉搜索树 5 100. 相同的树 6 101. 对称二叉树 7 1 ...

  9. 【Java 数据结构】二叉树的遍历和基本操作

    一.树型结构 1.概念 2.树的表示形式 二.二叉树 1.特点 2.两种特殊的二叉树 3.二叉树的性质 选择题: 4.二叉树的存储 5.二叉树的基本操作 5.1.创建一棵二叉树 5.2.二叉树的遍历 ...

最新文章

  1. 栈区和堆区内存分配区别
  2. zrst指令是什么意思_PLC成批复位指令ZRST
  3. 【转】 Android WebView内容宽度自适应
  4. 常见算法在实际项目中的应用
  5. SM04 在线用户管理(踢人事务)
  6. 关于health的原理
  7. python判断正负的函数_Python |在计算操作的函数内将负数转换为正数?
  8. 【PHP学习】—创建PHP文件(一)
  9. 为什么要使用 React-Redux?
  10. 【免费毕设】ASP.NET基于.NET的城市公交查询系统的实现与设计(源代码+lunwen)
  11. ipad mini2 12.5.4成功降级 10.3.3
  12. linux使用tab键联想,Linux 下python 如何设置使用tab键
  13. 个人信贷不良资产管理 难题亟待解决
  14. JSP概述——什么是JSP、JSP运行原理
  15. Linux DMA驱动构架分析
  16. NXP LPC1768最小系统板Keil开发环境流程演示
  17. 商标图形也会侵权?商标侵权如何界定
  18. 负载均衡是什么?-高负载均衡架构
  19. 使用MMA解决拓扑优化问题的并行框架
  20. [ 数通面试 ] 奇安信技术支持工程师 面试分享

热门文章

  1. 《测试驱动开发》读书笔记
  2. SQL Server与Oracle、DB2三种数据库比较
  3. python重启路由器_Python3控制路由器——使用requests重启极路由.py
  4. java调用浏览器组件来_Java 网页浏览器组件介绍
  5. 华为畅享8plus停产了吗_牢记华为手机“三不买”原则,不花冤枉钱,选错要吃亏!...
  6. pyqt开发的程序模板_小程序定制开发和模板开发要多少钱?有什么区别?
  7. react实现路由跳转_react实现hash路由
  8. mysql delete temporary denied_这些错误是什么意思?djang中的mysql
  9. 力扣151. 翻转字符串里的单词
  10. html的细节优化,网站页面优化细节详解