从头做leetcode之leetcode 108 将有序数组转换为二叉搜索树

108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

/** * 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& nums) { return BST(nums,0,nums.size()-1); }TreeNode* BST(vector& nums,int start,int end){ if(start > end) return nullptr; int mid = (start + end) / 2; int flag = nums[mid]; TreeNode *tmp = new TreeNode(flag); tmp->left = BST(nums,start,mid - 1); tmp->right = BST(nums,mid + 1,end); return tmp; } };

【从头做leetcode之leetcode 108 将有序数组转换为二叉搜索树】通过时间:
从头做leetcode之leetcode 108 将有序数组转换为二叉搜索树
文章图片

    推荐阅读