二叉树深度

二叉树的深度

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

二叉树深度

递归法

解法一

function TreeDepth(pRoot)
{
    return TreeWalk(pRoot,0)
 }

function TreeWalk(root,deep){
    if(root){
        return  Math.max(TreeWalk(root.left,deep+1),TreeWalk(root.right,deep+1))
    }
    else return deep
}

解法二

function TreeDepth(pRoot)
{
    if(!pRoot)return 0
    return  Math.max(TreeDepth(pRoot.left)+1,TreeDepth(pRoot.right)+1)
}

非递归解法

function TreeDepth(root){
    if(root == null)return 0;
    let level = [root]
    let result = 0;
    while(level.length){
        result++
        let newLevel = []
        for(let i = 0; i < level.length;i++){
            if(level[i].left)newLevel.push(level[i].left);
            if(level[i].right)newLevel.push(level[i].right);
        }
        level = newLevel;
    }
    return result;
}
全部评论

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务