76:Convert Sorted Array to Binary Search Tree

    xiaoxiao2021-03-25  136

    题目:Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

    该题目可以使用二分法,代码如下:

    // 递归法,时间复杂度 O(log n) class Solution { public: TreeNode* sortedArrayToBST(vector<int>& nums) { return sortedArrayToBST(nums.begin(), nums.end()); } private: template <class InputIterator> TreeNode* sortedArrayToBST(InputIterator first, InputIterator last) { if (first == last) return nullptr; auto size = distance(first, last); auto mid = next(first, size / 2); auto left_tree = sortedArrayToBST(first, mid); auto right_tree = sortedArrayToBST(next(mid), last); TreeNode* root = new TreeNode{*mid}; root -> left = left_tree; root -> right = right_tree; return root; } };
    转载请注明原文地址: https://ju.6miu.com/read-7847.html

    最新回复(0)