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;
}
}解析的话 参考平衡二叉树的右平衡方法