#3912. 魔幻树阵探秘

魔幻树阵探秘

🐰😺🌳 兔猫信奥学院的魔幻树阵探秘 🌳😺🐰

在信奥学院的梦幻果林深处,生长着一株神奇的“排序果树”。加菲老师告诉小兔和小猫:

“给定整数 (n),我们要用编号 (1) 到 (n) 的果实,恰好生成所有可能的二叉搜索树(BST)形态!每一棵树,都必须满足左子树果实编号小于根,右子树果实编号大于根,而且果实不重复使用。请你们将这些魔法果树一一构造出来,记录下不同结构的所有可能!”


输入格式

输入一行,包含一个整数 n。
  • \(1 \le n \le 8\) (由于树的数量随着 Catalan 数快速增长,实际可用性通常在 8 以内)

输出格式

返回所有由 1…n 构成的不同 BST,每棵树按层次遍历(null 用 null 占位)序列化。
可以按任意顺序返回这些序列化结果。

示例 1

3
[
 [1,null,2,null,3],
 [1,null,3,2],
 [2,1,3],
 [3,1,null,null,2],
 [3,2,null,1]
]

对应的 5 种 BST 结构

示例 2

1
[[1]]

🎓 加菲老师寄语:
通过分治+记忆化递归,你可以优雅地构建所有 BST 形态。实践时注意节点回收,以免内存泄露。祝魔幻树阵构建顺利!