您的位置:首页 > 其它

Leetcode 之Convert Sorted Array to Binary Search Tree(54)

2016-06-17 16:04 423 查看
思路很简单,用二分法,每次选中间的点作为根结点,用左、右结点递归。

TreeNode* sortedArrayToBST(vector<int> &num)
{
return sortedArrayToBST(num.begin(), num.end());
}
template<typename RandomAccessIterator>
TreeNode* sortedArrayToBST(RandomAccessIterator first, RandomAccessIterator last)
{
const auto length = distance(first, last);
if (length <= 0)return nullptr;

auto mid = first + length / 2;
TreeNode *root = new TreeNode(*mid);
root->left = sortedArrayToBST(first, mid);
root->right = sortedArrayToBST(mid, last);

return root;
}


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