算法-二叉树篇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;
    }
};
相关推荐
_Itachi__24 分钟前
LeetCode 热题100 21. 合并两个有序链表
算法·leetcode·链表
萌の鱼2 小时前
leetcode 240. 搜索二维矩阵 II
数据结构·c++·算法·leetcode·矩阵
竹木有心2 小时前
考研408数据结构线性表核心知识点与易错点详解(附真题示例与避坑指南)
数据结构·考研
@心都2 小时前
机器学习数学基础:37.统计学基础知识1
人工智能·算法·机器学习
奈葵2 小时前
动态规划/贪心算法
算法·动态规划
轩源源2 小时前
数据结构——哈希表的实现
开发语言·数据结构·c++·算法·哈希算法·散列表·哈希桶
wanjiazhongqi2 小时前
常见的排序算法 【复习笔记】
笔记·算法·排序
火车叨位去19492 小时前
拼电商客户管理系统
算法
lili-felicity3 小时前
深入理解指针与回调函数:从基础到实践
c语言·数据结构·算法
X_StarX3 小时前
计算机基础面试(数据结构)
数据结构·面试·职场和发展