dabocaiqq 2023-07-18 21:01 采纳率: 52.1%
浏览 12
已结题

Java语言怎么计算一颗二叉树上最大读数的叶子节点是多少

Java语言怎么计算一颗二叉树上最大读数的叶子节点是多少?用Java语言实现怎么编写代码和输出的

  • 写回答

3条回答 默认 最新

  • 全栈若城 新星创作者: 编程技术技术领域 2023-07-18 23:09
    关注

    运行效果如图:

    img

    代码如下 :

    // 定义二叉树节点
    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);
        }
    }
    
    
    

    思路分析:
    使用深度优先搜索算法

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 创建了问题 7月18日