颠仆流离学二叉树2 (Java篇)
warning:
这篇文章距离上次修改已过180天,其中的内容可能已经有所变动。
// 定义二叉树的节点类
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;
}
int leftDepth = maxDepth(root.left);
int rightDepth = maxDepth(root.right);
return Math.max(leftDepth, rightDepth) + 1;
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
node1.left = node2;
node1.right = node3;
node2.left = node4;
node3.right = node5;
Solution solution = new Solution();
int depth = solution.maxDepth(node1);
System.out.println("二叉树的最大深度是: " + depth);
}
}
这段代码首先定义了一个TreeNode
类来表示二叉树的节点,然后在Solution
类中实现了计算二叉树最大深度的方法maxDepth
。在main
方法中,我们创建了一个简单的二叉树,并调用了maxDepth
方法来计算并打印其最大深度。这个示例展示了如何使用递归方法来解决二叉树的问题,是一个很好的教学示例。
评论已关闭