leetcode在力扣 App 中打开
调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
困难
相关标签
相关企业
提示

从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。

给定一个由不同节点组成的二叉搜索树 root,输出所有可能生成此树的数组。

 

示例 1:

输入:root = [2,1,3]
输出:[[2,1,3],[2,3,1]]
解释:数组 [2,1,3]、[2,3,1] 均可以通过从左向右遍历元素插入树中形成以下二叉搜索树
       2 
      / \ 
     1   3

示例 2:

输入:root = [4,1,null,null,3,2]
输出:[[4,1,3,2]]

 

提示:

  • 二叉搜索树中的节点数在 [0, 1000] 的范围内
  • 1 <= 节点值 <= 106
  • 用例保证符合要求的数组数量不超过 5000

通过次数
13.3K
提交次数
27K
通过率
49.4%


相关企业

提示 1
每个数组中的第一个值是多少?

提示 2
根是每个数组中必须包含的第一个值。相对于右子树中的值,左子树中的值顺序如何?左子树值是否需要在右子树之前插入?

提示 3
左子树值与右子树值之间本质上可以是任何关系。可以在右子树之前插入左子树值,也可以反转(右子树的值在左边)或采用任意其他顺序。

提示 4
把这个分解成子问题。使用递归法。如果你有左右子树的所有可能的序列,那么如何为整个树创建所有可能的序列呢?

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
3 人在线
行 1,列 1
root =
[2,1,3]
2
1
3
Source