[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.

思路:

由于是有序数组,那么根节点肯定是中间的那个数字,然后递归处理左子树和右子树即可。

    TreeNode* ArrayToBST(vector<int>& nums, int i, int j)
    {    
        if (i > j) return NULL;
        int middle = (i + j) / 2;
        TreeNode *root = new TreeNode(nums[middle]);
        root->left = ArrayToBST(nums, i, middle - 1);
        root->right = ArrayToBST(nums,middle + 1,j);
        return root;
    }
    TreeNode* sortedArrayToBST(vector<int>& nums)
    {
        int size = nums.size();
        if (size == 0) return NULL;

        TreeNode *root = ArrayToBST(nums,0,size-1);
        
        return root;
    }
原文地址:https://www.cnblogs.com/hellowooorld/p/6606018.html