Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
class Solution {
public:
TreeNode *sortedArrayToBST(vector<int> &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(num.size()==0)
return NULL;
TreeNode *root=Build(0,num.size()-1,num);
return root;
}
TreeNode *Build(int i , int j , vector<int> &num){
if(i>j)
return NULL;
int middle=(j-i+1)/2;
TreeNode *root=new TreeNode(num[middle+i]);
TreeNode *left=Build(i,i+middle-1,num);
TreeNode *right=Build(i+middle+1,j,num);
root->left=left;
root->right=right;
return root;
}
};
本文介绍了一种方法,通过递归构建高度平衡的二叉搜索树(BST),从已排序的整数数组出发。这种方法确保了BST的高度最小化,从而提高了搜索效率。
1368

被折叠的 条评论
为什么被折叠?



