二叉树——求一棵完全二叉树节点的个数

Posted SkyeAngel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树——求一棵完全二叉树节点的个数相关的知识,希望对你有一定的参考价值。

已知一棵完全二叉树, 求其节点的个数
要求: 时间复杂度低于O(N), N为这棵树的节点个数

结论:满二叉树:高度为L,结点个数  2^L  - 1个

先遍历左边界,求出完全二叉树的高度h

然后遍历树的右子树的左边界,看它到没到最后一层,

  如果到了最后一层,那么证明它的左子树是满的,高度是h-1        左子树的结点数2^(h-1) - 1  + 当前节点 + 递归求解 右子树的结点的个数

  如果没到最后一层,那么证明它的右子树是满的,高度是h-2        右子树的结点数2^(h-2) - 1  + 当前节点 + 递归求解 左子树的结点的个数

以上是关于二叉树——求一棵完全二叉树节点的个数的主要内容,如果未能解决你的问题,请参考以下文章

二叉树刷题篇 完全二叉树的节点个数

通过二分查找+位运算求完全二叉树的节点个数

一个具有53个节点的完全二叉树,其度为一的结点个数为

如何删除一棵普通二叉树的叶子结点?

常见数据结构——完全二叉树(定义特征节点个数的判断以及C++简单实现)

⭐算法入门⭐《二叉树》简单06 —— LeetCode 222. 完全二叉树的节点个数