题目描述
给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。
示例 1:
示例 2:
输入:root = []
输出:0
示例 3:
输入:root = [1]
输出:1
进阶:遍历树来统计节点是一种时间复杂度为 O(n) 的简单解决方案。你可以设计一个更快的算法吗?
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-complete-tree-nodes/
解题思路
完全二叉树是由满二叉树(每层都是满的节点)和完全二叉树构造出来的,满二叉树节点数量是 2的n次方-1 (n是树的层数);完全二叉树的节点数量可以用普通的方式计算,分别计算左右子树,然后加上跟节点,可以用递归实现