108. Convert Sorted Array to Binary Search Tree(Tree)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tangyuanzong/article/details/85525565

链接:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/

题目:将有序数组转换成BST

思路:对于当前区间,新建节点,节点值为数组当前区间中间的元素,然后后续遍历,递归构建

代码:

class Solution {
public:
    TreeNode* order(vector<int>& nums,int l,int r){
        
              int mid = (l + r) / 2;
              TreeNode *root = new TreeNode (nums[mid]);
              TreeNode *left = NULL;
              TreeNode *right = NULL;
        
              if(l <= mid-1) left =  order(nums,l,mid-1);
              if(r >= mid+1) right = order(nums,mid+1,r);
        
              root->left = left;
              root->right = right;
        
              return root;
    }
    
    TreeNode* sortedArrayToBST(vector<int>& nums) {
              if(nums.size()==0) return NULL;
        
              return order(nums,0,nums.size()-1);
    }
};

猜你喜欢

转载自blog.csdn.net/tangyuanzong/article/details/85525565
今日推荐