Self balancing binary search tree

Five properties

  1. Each node in the tree must be colored red or black.
  2. The root node must be black.
  3. The leaves of the tree, null children must be black.
  4. Both children of each red node must be black.
  5. Each path down from the root to the leaf node should contain the same number of black nodes.