https://learnprogramming.in.net/binary-tree-traversal-algorithms-in-python/