【LeetCode 48】108.将有序数组转换为二叉搜索树
一、题意
二、解答过程
有序数组在构造二叉搜索树的时候,当前节点0一定是处于数组中间位置的。0的左边和右边分别对应二叉树左右子树,分别进行处理即可。
class Solution {
public:
TreeNode* traversal(vector<int>& nums,int left,int right)
{
if(left>right) return NULL;
int mid=left+((right-left)/2);//找数组当前节点
TreeNode *root=new TreeNode(nums[mid]);
//开始划分范围,查找
root->left = traversal(nums, left, mid - 1);
root->right = traversal(nums, mid + 1, right);
return root;
}
TreeNode* sortedArrayToBST(vector<int>& nums) {
TreeNode *root=traversal(nums,0,nums.size()-1);
return root;
}
};