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) {
        if (root == null) {
            return 0;
        }
        int ans = root.val;
        if (root.left != null) {
            ans = Math.max(ans, findMaxHeight(root.left));
        }
        if (root.right != null) {
            ans = Math.max(ans, findMaxHeight(root.right));
        }
        return ans;
    }
}

这道题主要考察的是二叉树的遍历和递归

  • 定义了一个名为TreeNode的类,表示二叉树节点,包含一个整数值val、左子节点引用left和右子节点引用right。
  • findMaxHeight方法接收一个二叉树的根节点root作为参数,并返回树的最大高度。
  • 如果根节点root为空,表示树为空,直接返回0。
  • 初始化变量ans为根节点的值root.val,作为最大高度的初始值。
  • 如果根节点有左子节点,递归调用findMaxHeight方法获取左子树的最大高度,并将其与当前最大高度做比较,更新ans。
  • 如果根节点有右子节点,递归调用findMaxHeight方法获取右子树的最大高度,并将其与当前最大高度做比较,更新ans。
  • 返回最大高度ans作为结果。