今天给大家带来完全二叉树,至于完全二叉树,就是比满二叉树的多一点。
完全二叉树定义
一棵二叉树中,最下面两层结点的度可以小于2,并且最下层的叶结点集中在靠左的任意位置上,这样的二叉树被称为完全二叉树。
但完全二叉树≠满二叉树,因为最下层的子节点在最下方的左边,所以,也可以说一颗二叉树一定是完全二叉树,因此,这里注意不要搞错了概念:
- 所有的节点都出现在最后一层,或s-1层
- 任意的节点如果右子树的最大的层次,左子树的最大的层次为s或s+1
完全二叉树性质
如果一棵具有n个结点的深度为s的二叉树,它的每一个结点都与深度为s的满二叉树中编号为1-n的结点对应,这棵二叉树称为完全二叉树
完全二叉树判定
- 如果树为空,返回false.
- 如果树不为空,则遍历二叉树,执行任务。
- 如果节点的左右孩子都不空,就返回pop,将其遍历。
- 如果如果一个节点左孩子为空,右节点孩子不为空,则一定不是完全二叉树。
- 如果遇到一个节点,左孩子为空,有孩子不为空,或者左右孩子都为空,则返回该节点之后所有的点,该树是完全二叉树,否则不是。
没有代码!