给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。
示例 1:
输入: root = [1,2,3,4,5,6]
输出: 6
示例 2:
输入: root = []
输出: 0
示例 3:
输入: root = [1]
输出: 1
提示:
- 树中节点的数目范围是
[0, 5 * 104] 0 <= Node.val <= 5 * 104- 题目数据保证输入的树是 完全二叉树
题解:
/**
* @description: 深度优先 TC:O(n) SC:O(1)
* @author: JunLiangWang
* @param {*} root 给定树的根节点
* @return {*}
*/
function dfs(root){
/**
* 本方案使用深度优先遍历二叉树
* 计算其节点即可
*/
// 记录节点树
let count=0;
/**
* @description: 递归回溯实现深度优先
* @author: JunLiangWang
* @param {*} root 子树根节点
* @return {*}
*/
function recursion(root){
if(!root)return
count++;
recursion(root.left)
recursion(root.right)
}
// 执行递归
recursion(root)
// 返回结果
return count
}