https://medium.com/coders-mojo/day-18-of-30-days-of-data-structures-and-algorithms-and-system-design-simplified-trees-831da5a95d8d