class MaxiumDepth {
private int answer; // don't forget to initialize answer before call maximum_depth
public int getAnswer() {
return answer;
}
public void setAnswer(int answer) {
this.answer = answer;
}
public MaxiumDepth(TreeNode root, int depth) {
maximum_depth(root,depth);
}
// answer 是成员变量,不是局部变量
private void maximum_depth(TreeNode root, int depth) {
// root == null时,不更新answer
if (root == null) {
return;
}
// 在迭代过程中不断更新 answer
if (root.left == null && root.right == null) {
answer = Math.max(answer, depth);
}
maximum_depth(root.left, depth + 1);
maximum_depth(root.right, depth + 1);
}
}
class test2 {
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);
TreeNode node6 = new TreeNode(6);
TreeNode node7 = new TreeNode(7);
node1.left = node2;
node1.right = node3;
node2.left = node4;
node2.right = node5;
node3.left = node6;
node3.right = node7;
int depth = new MaxiumDepth(node1,1).getAnswer();
System.out.println(depth);
}
}
/*
leetcode 在解答的过程中将类的构造方法和getter,setter方法,如何测试,都没有包括进去
*/
树-求树的最大深度之递归写法
最新推荐文章于 2024-12-15 17:22:46 发布
本文介绍了一个用于计算二叉树最大深度的Java实现方法。通过递归遍历左右子树并记录最大深度,该方法能够有效地找出给定二叉树的最大深度。
526

被折叠的 条评论
为什么被折叠?



