数据结构:用另一个 BST 的值返回相同形状的 BST

Data Structure: Returning the same shaped BST with another BST's values

嘿,我有一个问题,我需要描述一个算法来获得 2 个二叉搜索树,T1 和 T2。树包含每个节点的不同值。 并且该算法应该 return 一个二叉搜索树,其形状与 T2 相同,但 T1 的值具有 O(n) 的时间复杂度,其中 n 是元素的数量(两棵树都相同)

我们怎么称呼"Equally Topological"(我想这就是它的称呼/一个好听的名字)

例如:

T1(定义值)

T2(定义形状):

应该Return:

到目前为止我尝试过的是考虑中值/平均值,但是每次都不起作用,或者考虑构建一个 AVL 树然后旋转它直到我们找到解决方案,但我没有请记住这是否可行,或者时间复杂度 O(n)。任何帮助,将不胜感激!谢谢!

遍历 T1 并将值写入数组(按排序顺序排列)。然后创建 T2 的副本(如果需要)并遍历它,从数组中一个一个地写入值。这将使用2次遍历,所以它是Θ(n)。按左子树-顶点-右子树的顺序遍历两棵树。