繁体   English   中英

转换树需要多少个右旋?

[英]How many Right Rotation is need to convert a tree?

我选择一个不错的面试问题。 谁能为我澄清一下?

假设给出了一个具有6个节点的二叉树,因此每个节点只有左子节点。 通过执行多少次“向右旋转”操作(没有任何向左旋转),我们可以将该树转换为每个节点仅具有右子节点的树吗?

我的解决方案:

我认为n-1旋转就足够了(通过模拟),但是我可以做一个证明,哪位专家可以帮助我进行证明或提出想法?

该树从root开始,左侧有5个子节点( n-1个子节点)。 围绕root每次旋转都会使右侧的子root增加1。因此,在旋转5圈(即n-1旋转)之后,所有子代都将在右侧。

通过归纳证明:提出n旋转后,右边有n孩子。

步骤1:旋转1次后,右边有1个孩子。

步骤2:假设在n旋转之后,右边有n孩子,并证明在n+1旋转之后,右边有n+1孩子。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM