首页 > 其他分享 >654. 最大二叉树

654. 最大二叉树

时间:2022-10-16 10:23:25浏览次数:47  
标签:最大 递归 nums max 最大值 654 二叉树 root

题目描述

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:

创建一个根节点,其值为 nums 中的最大值。
递归地在最大值 左边 的 子数组前缀上 构建左子树。
递归地在最大值 右边 的 子数组后缀上 构建右子树。
返回 nums 构建的 最大二叉树 。

image

思路解析

对于二叉树类的问题,我们还是重复之前的思路:

  1. 能否通过便遍历来解决
  2. 能够通过递归来解决
  3. 单独分离出一个节点,它需要做什么

思考完毕之后我们发现,可以通过递归来解决问题,每次都找出最大值来作为它的根节点,之后再对左子树和右子树分别递归来达到目的。

参考代码

var constructMaximumBinaryTree = function(nums) {
    if(nums.length===0) return null
    let max = Math.max.apply(null,nums)
    // js中获取索引,注意findIndex的使用方法
    let maxIndex = nums.findIndex(item=>{return item===max})
    // 将最大值作为根节点
    let root = new TreeNode(max)
    root.left = constructMaximumBinaryTree(nums.slice(0,maxIndex))
    root.right= constructMaximumBinaryTree(nums.slice(maxIndex+1))
    return root
};

标签:最大,递归,nums,max,最大值,654,二叉树,root
From: https://www.cnblogs.com/zx529/p/16795698.html

相关文章

  • 层序遍历递归删除二叉树
    层序遍历递归删除二叉树什么是递归删除?从叶节点开始向根节点的方向逐层删除。直观的讲,对于以下二叉树,递归删除的次序为:f->g->h->i->d->e->b->c->a递......
  • 求最大值及其下标
    7-2求最大值及其下标分数10作者C课程组单位浙江大学本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一......
  • noi 1.5 6 整数序列的元素最大跨度值
     描述给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值=最大值减去最小值)。输入输入一共2行,第一行为序列的个数n(1<=n<=1000),第二行为序列的n个......
  • 树与二叉树
    二叉树性质:度为0的节点比度为2的节点多一个。解释:度为1的节点均可忽略;度为2的节点就相当于分割点,而度为0的节点就相当于线段;不分割时即有一条线段,当每多一个分割点时,线段......
  • 广义表转二叉树
    前序遍历和中序遍历&后序遍历和中序遍历可以还原出唯一的二叉树,而前序遍历和后序遍历不行(满二叉树时貌似可以,但只有一个根节点和一个子孩子时一定不行)//输入:A(B(,D),......
  • 数据结构:二叉树
    定义特点每个节点最多有两棵子树,所以二叉树中不存在度大于2的节点。左子树和右子树是有区别的,次序不能颠倒。即使某个节点只有1个子节点,也是有左右之分的。特殊的......
  • Centos 7.6 永久生效 最大进程数、打开文件数 Ulimit -a
    1.通过命令ulimit-a查看当前系统[root@db01~18:50:18]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[root@db01~18:50:24]#ulimit-acorefile......
  • 114. 二叉树展开为链表
    题目描述给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展......
  • 二叉树(存储结构,三种遍历方式,构建树)——C语言描述
    二叉树(存储结构,三种遍历方式,构建树)——C语言描述目录二叉树(存储结构,三种遍历方式,构建树)——C语言描述0测试用例框架1定义2特殊二叉树3二叉树的性质4二叉树存储结构5......
  • 226. 翻转二叉树
    题目描述解题思路二叉树的题一般都有对应的模板,我们做题时可以参考对应模板二叉树解题的思维模式分两类:1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个trav......