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

LeetCode108 将有序数组转换为二叉搜索树

  1. 题目
    给你一个整数数组 nums ,其中元素已经按 升序 排列,
    请你将其转换为一棵平衡二叉搜索树。

  2. 示例
    示例 1:
    输入:nums = [-10,-3,0,5,9]
    输出:[0,-3,9,-10,null,5]
    解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
    
    示例 2:
    输入:nums = [1,3]
    输出:[3,1]
    解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

  3. 解题思路
    1. 利用二分查找的思想,每找到一个元素,就将其构造成一个节点。并且因为数组本身已经排序,直接构造即可。
  4. 代码(Java)
    class Solution {
        public TreeNode sortedArrayToBST(int[] nums) {
            if (nums == null) {
                return null;
            }
            if (nums.length == 1) {
                return new TreeNode(nums[0]);
            }
            return sortedArrayToBST(nums, 0, nums.length - 1, (nums.length - 1) / 2);
        }
        public TreeNode sortedArrayToBST(int[] nums, int left, int right, int mid) {
            if (left > right) {
                return null;
            }
            TreeNode root = new TreeNode(nums[mid]);
            root.left = sortedArrayToBST(nums, left, mid - 1, (left + mid - 1) / 2);
            root.right = sortedArrayToBST(nums, mid + 1, right, (mid + 1 + right) / 2);
            return root;
        }
    }


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

相关文章:

  • 数学建模学习(135):使用Python基于WSM、WPM、WASPAS的多准则决策分析
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发十二:在屏幕上显示多路视频播放,可以有不同的分辨率,格式和帧率。
  • 后端java——如何为你的网页设置一个验证码
  • 【力扣 + 牛客 | SQL题 | 每日5题】牛客SQL热题216,217,223
  • 推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
  • ubuntu unrar解压 中文文件名异常问题解决
  • 云原生(四)、Docker-Compose
  • js复制内容到剪贴板实现复制粘贴功能
  • git tag标签使用
  • 从底层结构开始学习FPGA(0)----FPGA的硬件架构层次(BEL Site Tile FSR SLR Device)
  • MySQL 锁机制
  • Pytorch常用的函数(七)空洞卷积详解
  • word 及PPT 中修改公式字体
  • Windows程序员用MAC:初始设置(用起来像win一些)
  • jenkins Pipeline接入mysql
  • 在Visual Studio中调试 .NET源代码
  • 在Linux/Ubuntu/Debian中创建自己的命令快捷方式
  • 论文笔记:液体管道泄漏综合检测与定位模型
  • 探索编程迷宫:选择你的职业赛道
  • Day68:WEB攻防-Java安全原生反序列化SpringBoot攻防heapdump提取CVE
  • 【小程序开发】蓝牙设备API——单点蓝牙应用程序编程接口整理(二)
  • 强缓存和协商缓存
  • 基于深度学习YOLOv8+Pyqt5的工地安全帽头盔佩戴检测识别系统(源码+跑通说明文件)
  • Linux系统之jq工具的基本使用
  • TCP - 传输控制协议
  • Java基础经典10道题