题目

图片.png

题解

  1. class Solution {
  2. public:
  3. TreeNode* sortedArrayToBST(vector<int>& nums) {
  4. return helper(nums, 0, nums.size()-1);
  5. }
  6. TreeNode* helper(vector<int>& nums, int left, int right) {
  7. if (left > right) {
  8. return nullptr;
  9. }
  10. //中序递归创建二叉树
  11. int mid = (left + right) / 2; //每次取中间或者中间的左边为根节点
  12. TreeNode* root = new TreeNode(nums[mid]);
  13. root->left = helper(nums, left, mid - 1);
  14. root->right = helper(nums, mid + 1, right);
  15. return root;
  16. }
  17. };