LeetCode Convert Sorted Array to Binary Search Tree

来源:互联网 发布:有赞微商城 源码 编辑:程序博客网 时间:2024/04/30 03:05

Convert Sorted Array to Binary Search Tree

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

Solution:

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    typedef vector<int>::iterator vec_t;    void build(TreeNode*& root,vec_t t1,vec_t t2){        if(t1==t2)            return;        root=new TreeNode(*(t1+(t2-t1)/2));        build(root->left,t1,t1+(t2-t1)/2);        build(root->right,t1+(t2-t1)/2+1,t2);    }    TreeNode *sortedArrayToBST(vector<int> &num) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        if(num.empty())            return NULL;        TreeNode* head;        build(head,num.begin(),num.end());        return head;    }};

原创粉丝点击