题意
传送门 LeeCode 108
题解
左右两个子树的高度差的绝对值不超过 1 1 1,则将有序数组索引最靠近中间位置的元素当做根节点的值,递归处理左右子树。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution
{
public:
TreeNode *build(int l, int r, vector<int> &nums)
{
if (l >= r) return nullptr;
int m = (l + r) >> 1;
TreeNode *root = new TreeNode(nums[m]);
root->left = build(l, m, nums);
root->right = build(m + 1, r, nums);
return root;
}
TreeNode *sortedArrayToBST(vector<int> &nums)
{
return build(0, nums.size(), nums);
}
};