654. 最大二叉树

654. 最大二叉树

难度中等323 收藏 分享 切换为英文 接收动态 反馈

给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下:

  1. 二叉树的根是数组 nums 中的最大元素。
  2. 左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。
  3. 右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。

返回有给定数组 nums 构建的 **最大二叉树 **。

思路:递归调用,查找最大的元素作为二叉树的头

代码:

class Solution {
    public TreeNode constructMaximumBinaryTree(int[] nums) {
        TreeNode head = findMaxTreeNode(nums,0,nums.length);
        return head;
    }
    public TreeNode findMaxTreeNode(int[] nums,int l,int r){
        if(l==r)return null;
        int maxNum = l;
        int i = l;
        while(i<r){
            if(nums[maxNum]<nums[i]){
                maxNum = i;
            }
            i++;
        }
        TreeNode newHead = new TreeNode(nums[maxNum]);
        newHead.left = findMaxTreeNode(nums,l,maxNum);
        newHead.right = findMaxTreeNode(nums,maxNum+1,r);
        return newHead;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数...
    衣锦昼行阅读 1,760评论 0 0
  • 题目 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。左子树...
    小王同学加油阅读 1,369评论 0 0
  • 654 Maximum Binary Tree 最大二叉树 Description:You are given a...
    air_melt阅读 1,702评论 0 1
  • 题目 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。左子树...
    禾木清清阅读 3,610评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,755评论 28 53

友情链接更多精彩内容