Leecode:Convert Sorted Array to Binary Search Tree

来源:互联网 发布:ami js 编辑:程序博客网 时间:2024/06/15 01:52

描述
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
分析
二分法
代码

// LeetCode, Convert Sorted Array to Binary Search Tree// 分治法,时间复杂度O(n),空间复杂度O(logn)class Solution {public:    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 + 1, last);        return root;    }};
0 0
原创粉丝点击