recurse over left and right node
- return 0 when recursion reaches the end of tree
- return the max height of left and right sub-tree + 1
- if difference is more than 1, return false
bfs approach is also possible, but dfs is more suited as it finds DEPTH FIRST SEARCH.