static void LeftBalance(ref Node node) { Node L, lr; L = node.cLeft; switch (L.bf) { case EH: L.bf = RH; node.bf = LH; R_Rotate(ref node); break; case LH: L.bf = node.bf = EH; R_Rotate(ref node); break; case RH: lr = L.cRight; switch (lr.bf) { case EH: L.bf = L.bf = EH; break; case RH: node.bf = EH; L.bf = LH; break; case LH: L.bf = EH; node.bf = RH; break; default: break; } lr.bf = EH; L_Rotate(ref node.cLeft); R_Rotate(ref node); break; } }
解析的话 参考平衡二叉树的右平衡方法