自己做网站还是公众号,招聘网站费用怎么做分录,什么是网络设计师,网站的注册和登录怎么做给定一个二叉树的 root #xff0c;确定它是否是一个 完全二叉树 。
在一个 完全二叉树 中#xff0c;除了最后一个关卡外#xff0c;所有关卡都是完全被填满的#xff0c;并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1 到 2h 节点之间的最后一级 h 。
示…给定一个二叉树的 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