leetcode 108. Convert Sorted Array to Binary Search Tree

来源:互联网 发布:dsp算法大全c语言版本 编辑:程序博客网 时间:2024/06/17 03:34


形成一个BST

由于已经是排序后的数组,所以直接找到下标中间点就行。

如果没有排序的情况,应该先排序。


/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode* helper(vector<int>& nums, int begin, int end)    {        if (begin == end)            return new TreeNode(nums[begin]);        else if (begin > end)                return NULL;                   int mid = (begin + end) / 2;        TreeNode *p = new TreeNode(nums[mid]);        p->left = helper(nums, begin, mid-1);        p->right = helper(nums, mid + 1, end);        return p;        }    TreeNode* sortedArrayToBST(vector<int>& nums)     {        if (nums.size() > 0)            return helper(nums, 0, nums.size() - 1);        else             return NULL;    }};


阅读全文
0 0