[LeetCode]108. Convert Sorted Array to Binary Search Tree

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

方法

采用遞歸的方法

c代碼
#include <assert.h>
#include <stdlib.h>

struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
};

struct TreeNode* sortedArrayToBSTRecursively(int* nums, int low, int high) {
    if(low > high) return NULL;
    struct TreeNode* node = (struct TreeNode *)malloc(sizeof(struct TreeNode));
    int middle = (low+high)/2;
    node->val = nums[middle];
    node->left = sortedArrayToBSTRecursively(nums, low, middle-1);
    node->right = sortedArrayToBSTRecursively(nums, middle+1, high);
    return node;
}

struct TreeNode* sortedArrayToBST(int* nums, int numsSize) {
    return sortedArrayToBSTRecursively(nums, 0, numsSize-1);
}

int main() {
    int nums[3] = {1,2,3};
    struct TreeNode* root = sortedArrayToBST(nums, 3);
    assert(root->val == 2);
    assert(root->left->val == 1);
    assert(root->right->val == 3);

    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容