*LEETCODE 222. 完全二叉树的节点个数

给出一个完全二叉树,求出该树的节点个数。

说明:

完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。

示例:

输入: 
    1
   / \
  2   3
 / \  /
4  5 6

输出: 6

2. 标签

  • 二分查找

  • 位运算

  • 递归

  • 深度优先搜索

3. 解法 - DFS

3.1 Java

3.2 Kotlin

3.3 复杂度分析

  • 时间复杂度 O(N) :N 为树的结点数量,计算树的深度需要遍历到所有的结点。

  • 空间复杂度 O(N) :最差情况下,当树退化为链表,递归的深度会达到 N。

4. 解法 - 二分查找

4.1 Java

4.2 Kotlin

4.3 复杂度分析

  • 时间复杂度 O(N) :N 为树的结点数量,计算树的深度需要遍历到所有的结点。

  • 空间复杂度 O(N) :最差情况下,当树退化为链表,递归的深度会达到 N。

5. 参考

最后更新于