https://medium.com/data-structure-and-algorithms/binary-tree-insert-in-o-log-n-time-delete-and-search-6be3cf99deab