# Left-Leaning Red-Black Trees Study Guide

**Tree rotations**. We `rotateLeft`

or `rotateRight`

on a node, creating a different but valid BST with the same elements. Notice when we `rotateLeft(G)`

, the node `G`

becomes the left child of the new root.

**Left-Leaning Red Black Tree**. Implements a 2-3 tree as a BST with rotations and recoloring. Be able to convert between a 2-3 tree and a LLRB tree. We use red edges to indicate two nodes that would be in the same 3-node (node with 2 keys and 3 non-null children). In a left-leaning red-black tree, we arbitrarily enforce that the tree is left-leaning.

**Perfect black balance**. Every root-to-null path has the same number of black edges.**Left-leaning**. Red edges lean left.**Color invariant**. No node has two red edges connected to it, either above/below or left/right.

**LLRB Operations**. Always recursively insert with a red edge at the correct location. Then use the following three operations to fix the LLRB tree before leaving each recursive call.

- If there is a right red edge and a left black edge, rotate that node left.
- If there are two consecutive right left edges, rotate right on the top node.
- If there is a node with two red edges to both children, flip the colors of all edges touching that node.