力扣链接:108.将有序数组转换为二叉搜索树
难度:⭐
解题关键词:二叉树
、中序
解题思路:因为二叉搜索树是中序遍历按升序,所以中间的元素是头节点,递归创建就可以。
typescript
function sortedArrayToBST(nums: number[]): TreeNode | null {
const len = nums.length;
if (len === 0) return null;
// 中间是头节点
const mid = Math.floor((len - 1) / 2);
const node = new TreeNode(nums[mid]);
// 递归创建左右子树
node.left = sortedArrayToBST(nums.slice(0, mid));
node.right = sortedArrayToBST(nums.slice(mid + 1));
return node;
}