题目详细:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/description/
将有序数组转化为二叉搜索树时,树根位于有序数组中间mid,mid左边的构成左子树,右边的构成右子树。
通过递归调用,对二叉树进行构造。nums为0、1、大于1时,返回不同的结果。
此题参考博客:https://blog.csdn.net/romeo12334/article/details/81223669
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {number[]} nums
* @return {TreeNode}
*/
var sortedArrayToBST = function(nums) {
if(nums.length === 0) {
return null;
} else if(nums.length === 1) {
return new TreeNode(nums[0]);
} else {
// var mid = nums.length / 2;
//注意此处需要用到parseInt()函数将结果转化为整数
var mid = parseInt(nums.length / 2);
var root = new TreeNode(nums[mid]);
root.left = sortedArrayToBST(nums.slice(0,mid));
root.right = sortedArrayToBST(nums.slice(mid+1));
return root;
}
};