Monday, November 25, 2013

LeetCode Problem : Convert Sorted Array to Binary Search Tree

Problem


Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

Code


TreeNode *sortedArrayToBST_r(vector<int> &num,int l,int r) {
    if(l > r)
        return 0;
    int m = (l + r )/2;
    TreeNode *root = new TreeNode(num[m - 1]);
    root->left = sortedArrayToBST_r(num,l,m - 1);
    root->right = sortedArrayToBST_r(num,m + 1,r);
    return root;
}
TreeNode *sortedArrayToBST(vector<int> &num) {
    // IMPORTANT: Please reset any member data you declared, as
    // the same Solution instance will be reused for each test case.
    int n = num.size();    
    return sortedArrayToBST_r(num,1,n);
}

No comments:

Post a Comment