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

53 阅读1分钟

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

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

var countNodes = function(root) {
    if(!root) return 0
    let h =0 ;
    let temp = [root], next= [];
    while(1){
        next = []
        for(const node of temp){
            node.right && next.push(node.right)
            node.left && next.push(node.left)
        }
        if(temp.length *2 > next.length ){
            break
        }
        temp =next ;
    }
    console.log(temp, next)
    return temp.length *2 -1 + next.length

};