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.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

Example:



 
 
 
 
把一个升序序列变成一个平衡二叉搜索树:
c++
class Solution {
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
         if(nums.empty()) return NULL;
         int l = 0 ;
         int r = nums.size()-1;
         int mid = (l+r)/2 ;
         vector<int> left;
         vector<int> right;
        for(int i=0;i<mid;i++)
            left.push_back(nums[i]);
        for(int i=mid+1;i<=r;i++)
            right.push_back(nums[i]);
         TreeNode* tree = new TreeNode(nums[mid]);
         tree->left = sortedArrayToBST(left);
         tree->right = sortedArrayToBST(right);
        
        return tree;
         
        
    }
};
原文地址:https://www.cnblogs.com/dacc123/p/9232487.html