题解 | #牛群的最大高度# java
牛群的最大高度
https://www.nowcoder.com/practice/f745023c5ac641c9914a59377dacdacf
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型
*/
public int findMaxHeight (TreeNode root) {
// write code here
// 如果根节点为空,说明是空树,返回高度为0
if (root == null) {
return 0;
}
int val = root.val; // 当前节点的值,不影响高度计算
// 递归计算左子树和右子树的最大高度,取较大值
int maxChildHeight = Math.max(val,Math.max(findMaxHeight(root.left),findMaxHeight(root.right)));
// 最大高度为当前节点的高度(1)加上左子树和右子树中的较大高度
return maxChildHeight;
}
}
该题考察的知识点包括二叉树的基础操作,寻找二叉树最大高度。
- 首先判断根节点是否为空,如果为空说明是空树,直接返回高度为0。
- 获取当前节点的值(val),该值不影响高度的计算。
- 通过递归,分别计算当前节点的左子树和右子树的最大高度,并取较大值。
- 最大高度为当前节点的高度(1)加上左子树和右子树中的较大高度。

