当前位置: 首页 > article >正文

力扣 LeetCode 654. 最大二叉树(Day9:二叉树)

解题思路:

构造二叉树一定要用前序

中左右,先有中间节点,才有左右节点

区间左闭右开

注意递归终止条件

class Solution {
    public TreeNode constructMaximumBinaryTree(int[] nums) {
        return buildHelper(nums, 0, nums.length);
    }

    public TreeNode buildHelper(int[] nums, int start, int end) {
        if (end - start < 1) return null;
        if (end - start == 1) return new TreeNode(nums[start]);
        
        int max = 0;
        int index = 0;
        for (int i = start; i < end; i++) {
            if (max < nums[i]) {
                max = nums[i];
                index = i;
            }
        }
        TreeNode root = new TreeNode(max);

        root.left = buildHelper(nums, start, index);
        root.right = buildHelper(nums, index + 1, end);
        return root;
    }
}


http://www.kler.cn/a/403945.html

相关文章:

  • C# 中的属性:安全且灵活的数据访问
  • 图像处理 之 凸包和最小外围轮廓生成
  • 中间件--laravel进阶篇
  • Docker3:docker基础1
  • MySQL - 数据库基础 | 数据库操作 | 表操作
  • 问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
  • React第六节 组件属性prop的propTypes类型使用介绍
  • 二进制与网络安全的关系
  • 数据集-目标检测系列- 装甲车 检测数据集 armored_vehicles >> DataBall
  • 【数据分析实战】(一)—— JOJO战力图
  • Logrus IT亮相G-STAR 2024
  • 小白系统安装工具,U盘,在线,备份三合一
  • Dockerhub镜像加速
  • python读取Oracle库并生成API返回Json格式
  • 基于SpringBoot+RabbitMQ完成应⽤通信
  • Java小白成长记(创作笔记二)
  • 蓝桥杯c++算法秒杀【6】之动态规划【上】(数字三角形、砝码称重(背包问题)、括号序列、组合数问题:::非常典型的必刷例题!!!)
  • 鸿蒙学习高效开发与测试-应用程序框架(3)
  • 【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰
  • ShardingSphere——介绍
  • 学习笔记:使用Seurat进行细胞类型注释
  • PHP函数---function_exists()详解
  • 【华为云函数工作流】python的函数中如何获取请求链接中带的参数
  • Python Scikit-learn简介(二)
  • VSCode 间距太小
  • Java的正则表达式和爬虫