跳到主要内容

编写Java代码求二叉树深度?

参考答案:

在Java中,二叉树的深度可以通过递归算法来计算。下面是一个简单的示例代码,它定义了一个二叉树节点类TreeNode和一个方法maxDepth来计算二叉树的深度:

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

    TreeNode(int x) {
        val = x;
    }
}

public class Solution {
    public int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        } else {
            int leftDepth = maxDepth(root.left);
            int rightDepth = maxDepth(root.right);

            return Math.max(leftDepth, rightDepth) + 1;
        }
    }
}

在这个代码中,TreeNode类表示二叉树的一个节点,它有一个整数值val和两个指向左右子节点的指针leftright

Solution类中的maxDepth方法用于计算二叉树的深度。如果根节点为空(即树为空),则深度为0。否则,它递归地计算左子树和右子树的深度,并返回两者中的最大值加1(加上根节点的深度)。

你可以这样使用这个代码:

public class Main {
    public static void main(String[] args) {
        // 创建一个二叉树
        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);

        // 计算并打印二叉树的深度
        Solution solution = new Solution();
        System.out.println("The depth of the binary tree is: " + solution.maxDepth(root));
    }
}

这段代码创建了一个二叉树,并计算了其深度,然后打印出来。