Java实现二叉树最大深度

时间:2025-02-15 13:19:04
// 定义二叉树节点类 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; } } public class BinaryTreeMaxDepth { // 计算二叉树的最大深度 public int maxDepth(TreeNode root) { // 如果根节点为空,深度为0 if (root == null) { return 0; } // 递归计算左子树的最大深度 int leftDepth = maxDepth(root.left); // 递归计算右子树的最大深度 int rightDepth = maxDepth(root.right); // 返回左子树和右子树中深度较大的值加1 return Math.max(leftDepth, rightDepth) + 1; } public static void main(String[] args) { // 创建一个二叉树 TreeNode root = new TreeNode(1); root.left = new TreeNode(2); root.right = new TreeNode(3); root.left.left = new TreeNode(4); root.left.right = new TreeNode(5); // 创建一个BinaryTreeMaxDepth对象 BinaryTreeMaxDepth bt = new BinaryTreeMaxDepth(); // 计算二叉树的最大深度 int maxDepth = bt.maxDepth(root); // 输出最大深度 System.out.println("二叉树的最大深度为:" + maxDepth); } }