Java算法_ 二叉树的最大深度(LeetCode_Hot100)

题目描述:给定一个二叉树 ,返回其最大深度。root 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

获得更多?算法思路:代码文档,算法解析的私得。

运行效果

Java算法_ 二叉树的最大深度(LeetCode_Hot100)_第1张图片

完整代码

/**
 * 2 * @Author: LJJ
 * 3 * @Date: 2023/8/15 9:04
 * 4
 */

public class MaxDepthBinaryTree {
    static class TreeNode{
        int val ;
        TreeNode left;
        TreeNode right;

        TreeNode(int val){
            this.val = val;
        }
    }

    public  int maxDepth(TreeNode root){
        if (root == null){
            return 0;
        }

        //递归计算左子树和右子树的最大深度,并取较大值加一作为当前节点的深度
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);
        return Math.max(leftDepth,rightDepth) + 1;
    }

    public static void main(String[] args){
        MaxDepthBinaryTree maxDepthBinaryTree = new MaxDepthBinaryTree();

        // 构造二叉树
        TreeNode root = new TreeNode(3);
        root.left = new TreeNode(9);
        root.right = new TreeNode(20);
        root.right.left = new TreeNode(15);
        root.right.right = new TreeNode(7);

        // 计算最大深度
        int maxDepth = maxDepthBinaryTree.maxDepth(root);
        System.out.println("二叉树的最大深度为:" + maxDepth); // 输出最大深度

    }
}

你可能感兴趣的:(算法,java,leetcode)