求二叉树的深度,从根节点到字节点的最长路径。

二叉树的深度

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

public class Solution {
int len=0;
int sum;
//方法一:DFS,递归,回溯

public int TreeDepth(TreeNode root) {
    if(root==null) return 0;
    sum=1;
    len=DFS(root);
    return len;
}
public int DFS(TreeNode root){
    if(root.left==null && root.right==null) {
        if(len<sum) len=sum;
        return len;
    }
    if(root.left!=null){
        sum++;
        DFS(root.left);
        sum--;
    }
    if(root.right!=null){
        sum++;
        DFS(root.right);
        sum--;
    }
    return len;
}

//方法二:递归,整体思想

public int TreeDepth(TreeNode root){
    if(root==null) return 0;
    int left=TreeDepth(root.left);//左子树的最大深度
    int right=TreeDepth(root.right);//右子树的最大深度
    return Math.max(left,right)+1;//左右子树中最大的深度
}

}

全部评论

相关推荐

06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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