题解 | #二叉树的深度#

二叉树的深度

http://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
//时间复杂度:O(n) 空间复杂度:O(n),当退化到链表时
function TreeDepth(pRoot)
{
    // write code here
//     if (!pRoot) return 0;
//     let lval = TreeDepth(pRoot.left);
//     let rval = TreeDepth(pRoot.right);
//     return (lval > rval ? lval:rval)+1;
    // method2
    if (!pRoot) return 0;
    let queue = [];
    queue.push(pRoot);
    let level =0;
    while(queue.length){
        let sz = queue.length;
        while(sz--){
            let node = queue[0];
            queue.splice(0,1);
            if(node.left) queue.push(node.left);
            if(node.right) queue.push(node.right);
        }
        level++;
    }
    return level;
}



module.exports = {
    TreeDepth : TreeDepth
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务