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.
思路
将升序排序的数组变成一个平衡二叉搜索树,只需要在中间切断,将数组分为左右子树,继续递归下去。
代码
class Solution {
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
return build(nums, 0, nums.size()-1);
}
TreeNode* build(vector<int>& nums, int left, int right){
if (left>right){
return NULL;
}
int mid = (left+right)/2;
TreeNode* root = new TreeNode(nums[mid]);
root->left = build(nums, left, mid-1);
root->right = build(nums, mid+1, right);
return root;
}
};