题解 | #牛群的最大高度#

牛群的最大高度

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

使用java解决本题

知识点:二叉树

思路:

首先,判断根节点是否为空。如果为空,表示树为空树,直接返回高度为0。

  • 如果根节点不为空,将根节点的值保存在变量val中,作为当前节点的高度(假设根节点的高度为1)。
  • 然后,递归调用findMaxHeight函数,计算左子树的最大高度,并将结果保存在变量left中。
  • 如果左子树的最大高度left大于当前节点的高度val,更新valleft,表示左子树的高度更大。
  • 接着,递归调用findMaxHeight函数,计算右子树的最大高度,并将结果保存在变量right中。
  • 如果右子树的最大高度right大于当前节点的高度val,更新valright,表示右子树的高度更大。
  • 返回最终的高度值val,即为二叉树的最大高度。 总结起来,代码通过递归的方式遍历二叉树的节点,从而得到左子树和右子树的最大高度,并比较得到整个树的最大高度。代码的思路比较清晰,但可以通过优化来使得代码更加简洁和高效。
  • 全部评论

    相关推荐

    点赞 收藏 评论
    分享
    牛客网
    牛客企业服务