algorithm - 唯一二叉搜索树,leetcode 术语
问题描述
我正在查看 leetcode 问题,该问题要求枚举所有唯一的二叉搜索树(https://leetcode.com/problems/unique-binary-search-trees-ii/)。他们将每棵树编码为一个数组。但是,我不知道如何从树到数组。对于 n=3,我们得到树:
以及相应的数组:
[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]
完全不知道他们打算如何将树映射到相应的数组。例如,在第一棵树中,它们从 1 开始。但随后,它们一直向下到叶子 2,最后到达 3。
解决方案
我猜数组的顺序与树的顺序不同。
从左到右将树从 0 到 4 编号,数组表示的树应该是:
[1, 0, 2, 4, 3]
我不完全确定如何对深度较大的树执行此操作,但我想这可能是明确的,因为它是一棵搜索树。因此,在一个节点值之后是左右子节点的值,如果没有,则为 null。省略所有尾随空值。这有意义吗?
推荐阅读
- windows - 比 LogonUser() 更好的身份验证方式
- c - 二维数组的指针算术类型转换(C)
- mysql - MySQL 使用 C API 准备语句中的语法错误
- python - 在 python 中可视化具有(半)不透明的六边形网格的管
- python - python选择列表,然后从获胜列表中选择一个项目
- javascript - 异步函数 - 数据函数应该返回一个对象?
- php - PHP DomDocument - 自结束标记和特殊字符
- angular - 以角度对树节点的子节点进行排序
- php - SQLSTATE[HY000] [2002] 没有这样的文件或目录 (SQL: select * from `users` where `email` = test@test.com limit 1)
- angular - 从 Cloud Firestore 中检索数据