首页  >  文章  >  Java  >  实施轮换

实施轮换

王林
王林原创
2024-07-25 12:17:23871浏览

通过执行适当的旋转操作,不平衡的树变得平衡。重新平衡树部分说明了如何在节点上执行旋转。下面的代码给出了 LL 旋转的算法,如下图所示。

1balanceLL(TreeNode A, TreeNode ParentOfA) {
2 设 B 为 A 的左孩子。
3
4 if (A 是根)
5 设 B 为新根
其他 6 个{
7 if (A 是parentOfA 的左孩子)
8 设 B 为 ParentOfA 的左孩子;
其他9个
10 设B是parentOfA的右孩子;
11 }
12
13 将 B.right 赋值给 A.left,使 T2 成为 A 的左子树;
14 通过将 A 赋值给 B.right,使 A 成为 B 的右孩子;
15 更新节点A和节点B的高度;
16 } // 方法结束

Implementing Rotations

请注意,节点 AB 的高度可以更改,但树中其他节点的高度不会更改。您可以以类似的方式实现 RR、LR 和 RL 旋转。

以上是实施轮换的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn