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

算法-二叉树篇26-将有序数组转换为二叉搜索树

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

力扣题目链接

题目描述

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

解题思路

很简单的遇到递归题目,对数组取半,然后构建中间节点作为该数组对应的树,然后左右两边切割数组递归下去。

题解

class Solution {
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        if(nums.size() == 0){
            return nullptr;
        }
        if(nums.size() == 1){
            TreeNode* temp = new TreeNode(nums[0]);
            return temp;
        }
        int n = nums.size() / 2;
        vector<int> arr1(nums.begin(), nums.begin() + n);
        vector<int> arr2(nums.begin() + n + 1, nums.end());
        TreeNode* temp = new TreeNode(nums[n]);
        temp->left = sortedArrayToBST(arr1);
        temp->right = sortedArrayToBST(arr2);

        return temp;
    }
};

相关文章:

  • 基于兆芯ZX-C4500全国产电力通讯管理机解决方案,电力四级
  • pandas 数据的拼接
  • SpringBoot @Value 注解使用
  • 如何使用ArcGIS Pro制作横向图例:详细步骤与实践指南
  • 【vue-echarts】——03.配置项---tooltip
  • pandas DataFrame数据分组
  • CCF-CSP认证 202104-1灰度直方图
  • 在python语言中,请详细介绍一下比较运算符中等于符号(==)的情况?
  • Python数据序列化技术:高效存储与传输的最佳实践
  • LLMs之Data之smallpond:smallpond(基于DuckDB和3FS的一个轻量级的数据处理框架)的简介、安装和使用方法、案例应用之详细攻略
  • AI公司如何在经济寒冬中“逆势求生”
  • C++ STL(五) 无序关联容器
  • 【Delphi】如何解决使用webView2时主界面置顶,而导致网页选择文件对话框被覆盖问题
  • 【定昌Linux系统】部署了java程序,设置开启启动
  • 【最大半连通子图——tarjan求最大连通分量,拓扑排序,树形DP】
  • 大数据学习(52)-MySQL数据库基本操作
  • E22-xxxT22D lora模块介绍
  • 请说明字符串中 string str = null string str = ““ string str = string.Empty 三者的区别
  • 电商平台项目需求文档(精简版)
  • 实用AI推荐
  • “十五五”时期长三角需创新机制,形成高水平一体化合作路径
  • 南宁海关辟谣网传“查获600公斤稀土材料”:实为焊锡膏
  • 福建、广西等地有大暴雨,国家防总启动防汛四级应急响应
  • 李洋谈美国黑帮电影与黑帮文化
  • 国内规模最大女子赛艇官方赛事在沪启航,中外41支队伍逐浪
  • 既是工具又是食物,可食用机器人开启舌尖上的新科技