AVLNode RotateR(AVLNode u) { var v = u.Left; Replace(u, v); u.Left = v.Right; v.Right.Parent = u; v.Right = u; u.Parent = v; u.Adjust(); v.Adjust(); return(v); }
AVLNode RotateL(AVLNode v) { var u = v.Right; Replace(v, u); v.Right = u.Left; u.Left.Parent = v; u.Left = v; v.Parent = u; v.Adjust(); u.Adjust(); return(u); }