mid hard use stack to do in-order traverse