C语言 | Leetcode C语言题解之第108题将有序数组转换为二叉搜索树

题目:

题解:

cpp 复制代码
struct TreeNode* helper(int* nums, int left, int right) {
    if (left > right) {
        return NULL;
    }

    // 选择任意一个中间位置数字作为根节点
    int mid = (left + right + rand() % 2) / 2;

    struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
    root->val = nums[mid];
    root->left = helper(nums, left, mid - 1);
    root->right = helper(nums, mid + 1, right);
    return root;
}

struct TreeNode* sortedArrayToBST(int* nums, int numsSize) {
    return helper(nums, 0, numsSize - 1);
}
相关推荐
三品吉他手会点灯15 分钟前
STM32F103学习笔记-16-RCC(第3节)-使用HSE配置系统时钟并使用MCO输出监控系统时钟
c语言·笔记·stm32·单片机·嵌入式硬件·学习
jzhwolp36 分钟前
从nginx角度看数据读写,阻塞和非阻塞
c语言·nginx·性能优化
QiZhang | UESTC4 小时前
JAVA算法练习题day67
java·python·学习·算法·leetcode
oioihoii4 小时前
《C语言点滴》——笑着入门,扎实成长
c语言·开发语言
say_fall6 小时前
C语言容易忽略的小知识点(1)
c语言·开发语言
孙同学_7 小时前
面试题 16.25. LRU 缓存
leetcode·缓存
小白程序员成长日记8 小时前
2025.11.09 力扣每日一题
算法·leetcode·职场和发展
7澄18 小时前
深入解析 LeetCode 1572:矩阵对角线元素的和 —— 从问题本质到高效实现
java·算法·leetcode·矩阵·intellij-idea
程序员东岸8 小时前
数据结构精讲:从栈的定义到链式实现,再到LeetCode实战
c语言·数据结构·leetcode
say_fall9 小时前
C语言容易被忽略的易错点(2)
c语言·开发语言