跳到主要内容

1008.前序遍历构造二叉搜索树

链接:1008.前序遍历构造二叉搜索树
难度:Medium
标签:栈、树、二叉搜索树、数组、二叉树、单调栈
简介:返回与给定前序遍历 preorder 相匹配的二叉搜索树(binary search tree)的根结点。

题解 1 - typescript

  • 编辑时间:2021-08-07
  • 执行用时:72ms
  • 内存消耗:39.6MB
  • 编程语言:typescript
  • 解法介绍:获取左子树和右子树分别构造。
function bstFromPreorder(preorder: number[]): TreeNode | null {
const n = preorder.length;
if (n === 0) return null;
const mid = preorder[0];
let i = 1;
while (i < n && preorder[i] < mid) i++;
return new TreeNode(
mid,
bstFromPreorder(preorder.slice(1, i)),
bstFromPreorder(preorder.slice(i))
);
}