题解 | #牛群的最大高度# 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)加上左子树和右子树中的较大高度。