题目描述
给定一个二叉树的 root ,确定它是否是一个 完全二叉树 。
在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的,并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1 到 2h 节点之间的最后一级 h 。
样例描述
思路
二叉树堆式存储遍历
- 将二叉树按照堆的形式存储,直接遍历求最大结点的编号,如果不是等于结点数n,说明前面还有空的,就不是完全二叉树
- 堆的存储性质,当前结点编号k,左孩子编号是2k, 右孩子是2k + 1
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val