您的位置:首页 > 其它

LintCode: Convert Sorted Array to Binary Search Tree With Minimal Height

2015-11-27 11:09 363 查看
C++

/**
* Definition of TreeNode:
* class TreeNode {
* public:
*     int val;
*     TreeNode *left, *right;
*     TreeNode(int val) {
*         this->val = val;
*         this->left = this->right = NULL;
*     }
* }
*/
class Solution {
public:
/**
* @param A: A sorted (increasing order) array
* @return: A tree node
*/
TreeNode *sortedArrayToBST(vector<int> &A) {
// write your code here
if (0 == A.size()) {
return NULL;
}
return buildTree(A, 0, A.size()-1);
}
TreeNode *buildTree(vector<int> &A, int from, int to) {
if (from > to) {
return NULL;
}
int mid = (from+to)/2;
TreeNode *node = new TreeNode(A[mid]);
node->left = buildTree(A, from, mid-1);
node->right = buildTree(A, mid+1, to);
return node;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: