您的位置:首页 > 其它

108. Convert Sorted Array to Binary Search Tree

2016-02-29 10:09 393 查看
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

Solution:

/**
* 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* sortedArrayToBST(vector<int>& nums) {
return BST(0, nums.size()-1, nums);
}
TreeNode *BST(int left, int right, vector<int> &nums){
if(left > right) return NULL;
if(left == right) return new TreeNode(nums[left]);
int  mid = left + (right - left)/2;
TreeNode *tmp = new TreeNode(nums[mid]);
tmp->left = BST(left, mid-1, nums);
tmp->right = BST(mid+1, right, nums);
return tmp;
}
};
心得:每次选中值作为父节点

运行速度:快
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: