balance binay tree, do the recursive way (simple)
may solve it again in none-recursive way