在《Introduction To Algorithms - A Creative Approach 》一书中,问题 4.24:
令 T1 和 T2 是两棵任意树,每棵树都有 n 个节点。证明对 T1 最多应用 2n 次旋转就足够了,因此它等于 T2。
对于二叉搜索树,我想出了一个算法:
找到等于 T2 的根的元素,我们称之为目标根。
使用 AVL 旋转策略,旋转 target-root 使其成为 T1 的新根。
在此过程中,可能会执行多次旋转。对于 T1 和 T2 的左子树,递归处理如上。
对于 T1 和 T2 的右子树,递归处理如上。
该算法在最坏的情况下运行在 O(N^2) 中。
我不太明白“任意树”这个短语,我不知道如何使 T1 等于 T2。
有人可以帮助解决这个问题吗?