https://medium.com/codex/data-structures-algorithms-in-ruby-depth-first-search-pre-order-for-binary-trees-e2c836e44c08