A single rotation doesn't always do the job. In setting up our rotation example, we assumed that subtree z was higher than y. What would happen if y were the higher of the two?
In this case, the rotation does not produce a balanced tree.
A single rotation produces a balanced tree only if the interior subtree of H is no higher than the other subtree of H.
But, we can note that a left rotation shifts height from the right of the root to the left. Similarly, a right rotation shifts height from left to right.
So in this case, we are faced with a problem in that “y” is too high compared to “z”. The solution is to do a single right rotation of H to shift height to the right, making “z” higher, then do the single left rotation of U.
This combination is called a double left rotation. (There is, of course, a mirror image “double right rotation” as well.)
So the process of rebalancing a node consists mainly of determining whether we need a single or double rotation, then applying the appropriate rotation routines.