108 Convert Sorted Array to Binary Search Tree 将有序数组转换为二叉搜索树

Posted lina2014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了108 Convert Sorted Array to Binary Search Tree 将有序数组转换为二叉搜索树相关的知识,希望对你有一定的参考价值。

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
此题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。
示例:
给定有序数组: [-10,-3,0,5,9],
一种可行答案是:[0,-3,9,-10,null,5],它可以表示成下面这个高度平衡二叉搜索树:
      0
     / \
   -3   9
   /   /
 -10  5
详见:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/description/

/**
 * 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) {
        int n=nums.size();
        if(n==0||nums.empty())
        {
            return nullptr;
        }
        if(n==1)
        {
            return new TreeNode(nums[0]);
        }
        int mid=n/2;
        vector<int> left(nums.begin(),nums.begin()+mid);
        vector<int> right(nums.begin()+mid+1,nums.end());
        TreeNode* root=new TreeNode(nums[mid]);
        root->left=sortedArrayToBST(left);
        root->right=sortedArrayToBST(right);
        return root;
    }
};

 

以上是关于108 Convert Sorted Array to Binary Search Tree 将有序数组转换为二叉搜索树的主要内容,如果未能解决你的问题,请参考以下文章

108. Convert Sorted Array to Binary Search Tree

108. Convert Sorted Array to Binary Search Tree

108. Convert Sorted Array to Binary Search Tree

leetcode 108 Convert Sorted Array to Binary Search Tree

108. Convert Sorted Array to Binary Search Tree

LC.108.Convert Sorted Array to Binary Search Tree