[leetcode] 108.Convert Sorted Array to Binary Search Tree

来源:互联网 发布:江苏三六五网络 编辑:程序博客网 时间:2024/05/17 01:25

题目:
Given an array where elements are sorted in ascending order, convert it to a height balanced 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* sortedArrayToBST(vector<int>& nums) {        if(nums.size() == 0)return NULL;        return buildBST(nums, 0, nums.size() - 1);    }    TreeNode* buildBST(vector<int>& nums,int start,int end) {        if(start > end)return NULL;        int index = (start + end)/2;        TreeNode* root = new TreeNode(nums[index]);        root->left = buildBST(nums,start,index - 1);        root->right = buildBST(nums,index + 1, end);        return root;    }};
0 0
原创粉丝点击