编写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
和两个指向左右子节点的指针left
和right
。
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));
}
}
这段代码创建了一个二叉树,并计算了其深度,然后打印出来。