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);
}
相关推荐
Tomhex6 小时前
C语言内存安全防护指南
c语言
230万光年的思念8 小时前
zerotier连不上的问题
c语言
XiYang-DING11 小时前
【LeetCode】Hash | 136.只出现一次的数字
算法·leetcode·哈希算法
Fanfanaas11 小时前
Linux 基础开发工具(二)
linux·运维·服务器·c语言
leaves falling11 小时前
C/C++ const:修饰变量和指针的区别(和引用底层关系)
c语言·开发语言·c++
网域小星球11 小时前
C 语言从 0 入门(十二)|指针与数组:数组名本质、指针遍历数组
c语言·算法·指针·数组·指针遍历数组
Tairitsu_H11 小时前
C语言:排序(一)
c语言·数据结构·排序
12.=0.12 小时前
【stm32_5】Systick嘀嗒定时器、解析时钟源、分析时钟树、应用Systick设计延时
c语言·stm32·单片机·嵌入式硬件
嘻嘻哈哈樱桃13 小时前
俄罗斯套娃信封问题力扣--354
算法·leetcode·职场和发展
田梓燊13 小时前
2026/4/12 leetcode 1320
算法·leetcode·职场和发展