您的位置:首页 > 职场人生

74_leetcode_Convert Sorted Array to Binary Search Tree

2014-06-20 14:05 429 查看
Given an array where elements are sorted in ascending order, convert it to a height balanced BST

1:特殊情况;2:取数组的中间的数构建根节点;3:数组的左边和右边分别构建左子树和右子树;4:注意递归结束情况

TreeNode *sortedArrayToBST(vector<int> &num)
{
if(num.size() == 0)
{
return NULL;
}

int size = (int)num.size();
return sortedArrayToBSTCore(num, 0, size - 1);
}
TreeNode *sortedArrayToBSTCore(vector<int> &num, int start, int end)
{
if(end < start)
{
return NULL;
}

int middle = (start + end) / 2;
TreeNode *root = new TreeNode(num[middle]);

root->left = sortedArrayToBSTCore(num, start, middle -1);
root->right = sortedArrayToBSTCore(num, middle + 1, end);

return root;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息