一、题意
二、解答过程
有序数组在构造二叉搜索树的时候,当前节点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; } };