question: public int next ( ) { TreeNode n = stack . pop ( ) ; pushAll ( n . right ) ; return n . val ; }
target:  To get the next smallest value. We pop the leftmost leaf from the stack. Then we add all its right child's left children to stack. Imagine all left children of a node is popped out. The next will be itself. And the next will be its right child's leftmost child.