我正在进行AVL树分配,我对它们的定义有一个快速的问题 - 我们给出了一个排序列表,我们必须在O(n)时间内从它生成一个AVL树。我已经完成了这个(感谢StackOverflow的其他帮助!),但是我的结果,虽然是有效的AVL树,但与提供的示例的结果不同。是否可以从同一个排序列表生成多个AVL树?
谢谢!
答案 0 :(得分:3)
是。考虑只有两个节点的树的退化情况。在这种情况下,任一节点都可以是根节点,另一个节点可以是叶子节点。就总体平衡而言,这两者是等价的。
答案 1 :(得分:2)
是的,例如,这些是< 1,2,3,4,5>的两个可能的AVL树:
(2 1(3 4 5))
和
(4(2 1 3)5)
其中(a T1 T2)表示具有根a,左树T1和左右T2的树。