Source: https://www.cs.princeton.edu/courses/archive/fall09/cos226/lectures/42BinarySearchTrees-2x2.pdf