难度: 简单
因为是单调递增,所以用中序遍历,然后是平衡二叉树,所以取中心点作为索引
这里注意 mid 取值
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {number[]} nums
* @return {TreeNode}
*/
var sortedArrayToBST = function(nums) {
const buildTree = (arr, left, right) => {
if (left > right) return null;
const mid = Math.floor(left + (right - left) / 2)
// const mid = right >> 1;
const root = new TreeNode(arr[mid]);
root.left = buildTree(arr, left, mid - 1);
root.right = buildTree(arr, mid + 1, right);
return root;
}
return buildTree(nums, 0, nums.length - 1);
};