LeetCode 958. 二叉树的完全性检验(层序遍历)
1. 题目
给定一个二叉树,确定它是否是一个完全二叉树。
百度百科中对完全二叉树的定义如下:
若设二叉树的深度为 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 到 100 个结点。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/check-completeness-of-a-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 层序遍历
- 利用队列层序遍历,注意对子节点为空的话,也把它加入队列
- 当遇见
NULL
出队时,后面再遇见非空节点出队,则说明不是完全二叉树
class Solution {public:bool isCompleteTree(TreeNode* root) {bool hasNULL = false;queue<TreeNode*> q;q.push(root);TreeNode *tp;while(!q.empty()){tp = q.front();q.pop();if(hasNULL && tp != NULL)//有NULL出队了,且现在出队的非空return false;if(tp == NULL)hasNULL = true;else{q.push(tp->left);q.push(tp->right);}}return true;}
};
LeetCode 958. 二叉树的完全性检验(层序遍历)相关推荐
- 2021- 10 -9 LeetCode 958. 二叉树的完全性检验(待补完)
二叉树的完全性检验 给定一个二叉树,确定它是否是一个完全二叉树. 若设二叉树的深度为 h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就 ...
- leetcode 958.二叉树的完全性检验 Java
二叉树的完全性检验 题目链接 描述 示例 初始代码模板 代码 题目链接 https://leetcode-cn.com/problems/check-completeness-of-a-binary- ...
- 958. 二叉树的完全性检验 golang
958. 二叉树的完全性检验 给定一个二叉树,确定它是否是一个完全二叉树. 百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数 ...
- Leetcode 103.二叉树的锯齿形层序遍历
难度:中等 频率:136 题目: 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 解题方法:改进的BPS[广度优先搜索] BP ...
- Leetcode 103. 二叉树的锯齿形层序遍历 (每日一题 20210924)
给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行).例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 ...
- 【LeetCode笔记】958. 二叉树的完全性检验(Java、二叉树、BFS)
文章目录 题目描述 思路 && 代码 层级遍历法 BFS 二刷 题目描述 考察对完全二叉树性质的理解 思路 && 代码 层级遍历法 一开始试了自底向上的DFS,过了90 ...
- 958. 二叉树的完全性检验
给定一个二叉树,确定它是否是一个完全二叉树. 百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集 ...
- LeetCode Algorithm 103. 二叉树的锯齿形层序遍历
103. 二叉树的锯齿形层序遍历 Ideas 首先得理解二叉树的层序遍历,它类似于广度优先搜索,在当前层搜索的时候,遍历到的每一个节点都要把它的所有孩子节点都添加到队列中. 然后我们要锯齿形遍历,可以 ...
- 二叉树的锯齿形层序遍历
Leetcode:103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode) (leetcode-cn.com) 还是层序遍历的问题,只不过这里需要注意层数,从而选择是正序访问还是倒序访问. 时间 ...
最新文章
- 显微镜下的大明内容_《显微镜下的大明》epub、mobi、azw3
- 二.Python的基础语法知识
- 十个 SCP 传输命令例子
- PHP Extension Makefile 製作
- 【赠书】图神经网络优质书籍,送你3本进行学习
- python区块链开发_Fabric区块链Python开发详解
- 手把手教你捕获数据包
- centos7;windows下安装和使用spice
- stl Vecotr中遍历方法
- [Linux] Ubuntu 11.04 安装 Faenza 0.9 图标集
- com.android.packageinstaller,Android PackageInstaller 安装和卸载
- VBA每日一练(2),将txt 的部分/全部内容 导入到EXCEL
- 视频编解码(一):ffmpeg编码H.264帧类型判断
- Unix/Linux存在之必然性
- vue+springboot实现调用本地摄像头拍照上传后端使用百度ocr识别身份证信息
- springboot-莫名其妙的登录界面“Please sign in“
- LDO输出为什么并联接地电阻?
- 数据时代的大数据技术,主要包括哪些内容?
- Linux下更改服务器名称
- 蔡氏混沌matlab,蔡氏混沌电路的MATLAB仿真研究_高见芳