二叉树深度

二叉树的深度

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;
}
全部评论

相关推荐

程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
06-25 21:00
门头沟学院 Java
多拆解背记一下当前的高频场景面试题,结合自己的项目经历去作答,面试通过率原来真的不会低!
牛客965593684号:小公司不就是这样的吗,面试要么是点击就送,要么就是往死里拷打,没有一个统一的标准。这个不能代表所有公司
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务