104. 二叉树的最大深度

题目:

104. 二叉树的最大深度

题解:



代码:

/** * code104 */
public class code104 {

    public static int maxDepth(TreeNode root) {
        // 递归退出条件,到叶子节点
        if (root == null) {
            return 0;
        }
        // 计算左子树最大深度
        int leftMaxDepth = maxDepth(root.left);
        // 计算右子树最大深度
        int rightMaxDepth = maxDepth(root.right);
        // 以某个节点为根节点的数的最大深度为Max
        // Max = max(leftMaxDepth,rightMaxDepth)+1
        return Math.max(leftMaxDepth, rightMaxDepth) + 1;
        // 以上可合并为:
        // return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
    }

    public static void main(String[] args) {
        System.out.println("***************************************");
        Integer nums[] = { 3, 9, 20, null, null, 15, 7 };
        TreeNode tree = ConstructTree.constructTree(nums);
        TreeOperation.show(tree);
        System.out.println("***************************************");
        int count = maxDepth(tree);
        System.out.println("该二叉树的最大深度为: " + count);
        System.out.println("***************************************");
    }
}

参考:

  1. 二叉树的最大深度
  2. 漫画:绝对能看懂的DFS题解
  3. 使用递归解决
  4. java实现,三种方法,递归实现、迭代实现(DFS、BFS)
  5. 图解 104. 二叉树的最大深度 | 递归/Python/Golang 详细解答
全部评论

相关推荐

程序员牛肉:这一眼假啊,基本上都是骗人的,不然就涉及到职位贪腐了,就像之前华为的OD事件,看你运气好不好了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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