【LeetCode】-- 108. 将有序数组转换为二叉搜索树

news/2024/11/14 15:13:02/

1. 题目

108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode)

给你一个整数数组 nums ,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

2. 示例

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:

 

 

 

输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

 

 

3. 分析

一看到二叉树,第一反应是用递归。

要把一个有序数组变成二叉树,那么就要找出根,根就是有序数组中间位置的数,根将有序数组分为两部分,左边是树的左子树,右边是树的右子树,再找左子树的根和右子树的根,左子树的根就是左半部分数组中间位置的数,右子树的根就是右半部分数组中间位置的数

4. 代码实现

class Solution {
public:TreeNode* sortedArrayToBST(vector<int>& nums) {return binaryTree(nums,0,nums.size() - 1);}//递归建立二叉树TreeNode* binaryTree(vector<int>& nums,int left,int right){if(left > right){return nullptr;}//计算根的数据值int mid = (left + right) / 2;//建二叉树TreeNode* root = new TreeNode(nums[mid]);root->left = binaryTree(nums,left,mid - 1);root->right = binaryTree(nums,mid + 1,right);return root;}
};


http://www.ppmy.cn/news/38750.html

相关文章

Spring Cloud Alibaba 应用如何平滑迁移至 IPv6?

作者&#xff1a;铖朴 背景 IPv4 协议&#xff08;后文简称 IPv4&#xff09;为互联网的发展与普及做出了重要贡献&#xff0c;但近年来&#xff0c;随着应用程序、数据和 IT 服务的爆炸式增长。当初协议设计过程中用来描述 IP 地址所采用的 32 位二进制数格式的 IPv4 地址已…

Centos8 Redis7

一 配置&#xff08;可能用到&#xff09; 将 Linux 内核超量使用内存设置设置为1&#xff0c;修改/etc/sysctl.conf&#xff0c;添加vm.overcommit_memory 1。然后重启或使用命令 sysctl vm.overcommit_memory1 使之生效。关闭Linux特性Transparent Huge Pages&#xff1a; …

DPU全球混战,国内多家崛起(2023)

云计算通用可编程DPU发展白皮书&#xff08;2023年&#xff09;通过阐明和分析 DPU 发展的过程与现状&#xff0c;指出哪些 DPU 特性是解决上述核心问题的关键点&#xff0c;从而推动 DPU 技术的深入发展&#xff0c;助力实现完整的生态链建设和产业落地。 相关文章&#xff1…

国营单位工作4年转行网络安全,成功上岸安全开发

前言 我是去年9月22日才正式学习网络安全的&#xff0c;因为在国营单位工作了4年&#xff0c;在天津一个月工资只有5000块&#xff0c;而且看不到任何晋升的希望&#xff0c;如果想要往上走&#xff0c;那背后就一定要有关系才行。 而且国营单位的气氛是你干的多了&#xff0…

java与kotlin 写法区别

原文链接&#xff1a;https://gitcode.net/mirrors/mindorksopensource/from-java-to-kotlin?utm_sourcecsdn_github_accelerator#assigning-the-null-value Print to Console 打印到控制台 Java System.out.print("Amit Shekhar"); System.out.println("Amit…

【华为机试真题详解JAVA实现】—简单错误记录

目录 一、题目描述 二、解题代码 一、题目描述 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠…

echarts圆形统计图例子

1、先展示效果图 2、直接上代码&#xff0c;把我代码copy拿去调一下就知道了&#xff08;引用echarts插件看之前的文章&#xff09; <template><div class"employee-container"><div class"top-content"><span class"top-titl…

leetcode 1040. 移动石子直到连续 II

原题链接&#xff1a;力扣 在一个长度 无限 的数轴上&#xff0c;第 i 颗石子的位置为 stones[i]。如果一颗石子的位置最小/最大&#xff0c;那么该石子被称作 端点石子 。 每个回合&#xff0c;你可以将一颗端点石子拿起并移动到一个未占用的位置&#xff0c;使得该石子不再…