Algorithm 数据结构:返回形状相同的BST和另一个BST';s值
嘿,我有一个问题,我需要描述一个算法,得到2个二叉搜索树,T1和T2。树包含每个节点的不同值。 该算法应该返回一个与T2形状相同的二叉搜索树,但其值为T1,时间复杂度为Algorithm 数据结构:返回形状相同的BST和另一个BST';s值,algorithm,data-structures,binary-tree,binary-search-tree,Algorithm,Data Structures,Binary Tree,Binary Search Tree,嘿,我有一个问题,我需要描述一个算法,得到2个二叉搜索树,T1和T2。树包含每个节点的不同值。 该算法应该返回一个与T2形状相同的二叉搜索树,但其值为T1,时间复杂度为O(n),其中n是元素数(两棵树相同) 我们称之为“同等拓扑”(我认为这就是它的名称/一个很好的名称) 例如: T1(定义值) T2(定义形状): 应返回: 到目前为止,我尝试的是考虑中值/平均值,但每次都不起作用,或者考虑建立一个AVL树,然后旋转它,直到找到解决方案,但我不知道这是否可行,或者是时间复杂度O(n)。任何帮
O(n)
,其中n
是元素数(两棵树相同)
我们称之为“同等拓扑”(我认为这就是它的名称/一个很好的名称)
例如:
T1(定义值)
T2(定义形状):
应返回:
到目前为止,我尝试的是考虑中值/平均值,但每次都不起作用,或者考虑建立一个AVL树,然后旋转它,直到找到解决方案,但我不知道这是否可行,或者是时间复杂度
O(n)
。任何帮助都将不胜感激!谢谢大家! 遍历T1并将值写入数组(按排序顺序)。然后创建T2的副本(如有必要)并遍历它,逐个写入数组中的值。这将使用2次遍历,因此为Θ(n)。按左子树-顶点-右子树的顺序遍历两棵树。遍历T1并将值写入数组(按排序顺序)。然后创建T2的副本(如有必要)并遍历它,逐个写入数组中的值。这将使用2次遍历,因此为Θ(n)。按左子树-顶点-右子树的顺序遍历这两棵树。先生,你真是个天才!先生,你真是个天才!