我有一个关于Balanced BST
.
我想构建Perfect Balanced Tree
具有2^k - 1
节点的常规unbalanced BST
. 我能想到的最简单的解决方案是使用排序Array/Linked list
并递归地将数组划分为子数组,并Perfect Balanced BST
从中构建。
但是,在 Tree 大小非常大的情况下,我需要创建一个Array/List
相同大小的树,因此这种方法会消耗大量内存。
另一种选择是使用AVL
旋转函数,逐个元素插入并根据树平衡因子(左右子树的三个高度)通过旋转平衡树。
我的问题是,我的假设是否正确?有没有其他方法可以BST
从不平衡创造完美BST
?