我选择了一个很好的面试问题。有人可以为我澄清一下吗?
假设给出了一个包含6个节点的二叉树,这样每个节点都有 只留下孩子。有多少"右旋"操作(没有任何左翼 我们可以将这棵树转换成每个节点只有的树 正确的孩子?
我的解决方案:
我认为n-1轮换就足够了(通过模拟),但是我可以做一个证明,哪位专家可以帮助我提供证据或想法?
答案 0 :(得分:1)
树以root
节点和左边5个孩子(n-1
个孩子)开头。围绕root
的每次旋转都会使右边的孩子数量增加1.因此,在5次旋转(意味着n-1
次旋转)后,所有孩子都将在右侧。
通过归纳证明:建议在n
轮换后,右侧有n
个孩子。
步骤1:旋转1次后,右侧有1个孩子。
步骤2:假设在n
轮换后,右侧有n
个孩子,并证明在n+1
轮换后,右侧有n+1
个孩子。