首发于 语雀文档@blueju
代码:
/*** Definition for a binary tree node.* class TreeNode {* val: number* left: TreeNode | null* right: TreeNode | null* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {* this.val = (val===undefined ? 0 : val)* this.left = (left===undefined ? null : left)* this.right = (right===undefined ? null : right)* }* }*/function sortedArrayToBST(nums: number[]): TreeNode | null {if (nums.length === 0) return nullconst [middleIndex, middleValue] = getRoot(nums)const tree = new TreeNode(middleValue)tree.left = sortedArrayToBST(nums.slice(0, middleIndex))tree.right = sortedArrayToBST(nums.slice(middleIndex + 1))return tree};function getRoot(nums) {const index = Math.floor(nums.length / 2)return [index, nums[index]]}
