Skip to content

力扣链接: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;
}