(我见过一些非常类似的练习,但所有练习都是规则的二叉树)。就像在标题中一样,我必须提出一种将BST转换为具有对称结构的BST的算法,该算法包含与上一个相同的值。例如
我的想法是从一开始就构建一棵新树。我将从一个新的根开始,该根在原始树的值的排序数组中将位于原始根的对称位置。在上面的示例中:3 5 6 7 12数字7将是新的根,因为与先前的根5相比,它的左侧/右侧的节点数反转了。但是,这并不能完全解决问题,因为新树取决于插入顺序。我想通过根据平衡进行旋转来结束它。我的问题是:这棵树是否必须是AVL树,以便我可以执行轮换(这意味着运动中存在错误)。还是有解决此问题的简便方法?
答案 0 :(得分:0)
我将分两步解决此问题: