代码随想录算法训练营第二十天-二叉树-108.将有序数组转换为二叉搜索树

  • 构造的关键点就是找到树的根结点
  • 每个子树也是找其的根结点
  • 注意如果构造一个线性二叉树也是搜索树,但不符合题意
cpp 复制代码
#include <iostream>
#include <vector>

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(): val(0), left(nullptr), right(nullptr) {}
    TreeNode(int v): val(v), left(nullptr), right(nullptr) {}
    TreeNode(int v, TreeNode* l, TreeNode* r): val(v), left(l), right(r) {}
};

class Solution {
private:
    TreeNode* traversal(std::vector<int>& nums, int left, int right) {
        if (left > right)
            return nullptr;
        int mid = (left + right) / 2;
        TreeNode* root = new TreeNode(nums.at(mid));
        root->left = traversal(nums, left, mid - 1);
        root->right = traversal(nums, mid + 1, right);
        return root;
    }
public:
    TreeNode* sortedArrayToBST(std::vector<int>& nums) {
        return traversal(nums, 0, nums.size() - 1);
    }
};
int main()
{
    Solution s;
    return 0;
}
相关推荐
破-风2 小时前
leetcode-------mysql
算法·leetcode·职场和发展
salsm5 小时前
使用 C++ 和函数式编程构建高效的 AI 模型
c++·人工智能
程序猿(雷霆之王)5 小时前
C++——继承
开发语言·c++
xianwu5435 小时前
mysql入门篇
开发语言·网络·c++·git
自不量力的A同学6 小时前
如何利用人工智能算法优化知识分类和标签?
人工智能·算法·分类
yuanbenshidiaos7 小时前
QT-------------多线程
数据结构·数据库·qt
CodeJourney.7 小时前
PyTorch不同优化器比较
人工智能·pytorch·算法·能源
winner88817 小时前
对比学习损失函数 - InfoNCE
学习·算法·对比学习·infonce
疯狂成瘾者7 小时前
np.ndarray 是 NumPy 库中的核心数据结构
数据结构·numpy
南宫生7 小时前
力扣-数据结构-12【算法学习day.83】
java·数据结构·学习·算法·leetcode