题目链接:
https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
题目描述:
根据一个递增的序列建一个二叉查找树。
题目分析:
先建好一个根节点,再根据根节点递归的划分左右子树进行建树。
代码:
void createBST(struct TreeNode **root,int* nums,int len){
if(len<=0){
return;
}
int idx=len/2;
*root=(struct TreeNode*)malloc(sizeof(struct TreeNode*));
(*root)->val=nums[idx];
(*root)->left=(*root)->right=NULL;
createBST(&((*root)->left),nums,idx);
createBST(&((*root)->right),nums+idx+1,len-idx-1);
}
struct TreeNode* sortedArrayToBST(int* nums, int numsSize) {
struct TreeNode* root=NULL;
createBST(&root,nums,numsSize);
return root;
}