Java语言怎么计算一颗二叉树上最大读数的叶子节点是多少?用Java语言实现怎么编写代码和输出的
3条回答 默认 最新
关注运行效果如图:

代码如下 :
// 定义二叉树节点 class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int val) { this.val = val; } } public class Main { // 计算二叉树最大叶子节点的值 static int getMaxLeafValue(TreeNode root) { if (root == null) { return Integer.MIN_VALUE; } // 当前节点为叶子节点 if (root.left == null && root.right == null) { return root.val; } int leftMax = getMaxLeafValue(root.left); // 递归计算左子树最大叶子节点的值 int rightMax = getMaxLeafValue(root.right); // 递归计算右子树最大叶子节点的值 // 返回左右子树中较大的叶子节点值 return Math.max(leftMax, rightMax); } public static void main(String[] args) { // 构造二叉树 TreeNode root = new TreeNode(1); root.left = new TreeNode(2); root.right = new TreeNode(3); root.left.left = new TreeNode(4); root.left.right = new TreeNode(5); // 计算最大叶子节点的值 int maxLeafValue = getMaxLeafValue(root); // 输出结果 System.out.println("最大叶子节点的值为:" + maxLeafValue); } }思路分析:
使用深度优先搜索算法本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用