public class BSTIterator {
Stack<TreeNode> stack;
public BSTIterator(TreeNode root) {
stack = new Stack<TreeNode>();
if(root == null)
return;
while(root != null){
stack.add(root);
root = root.left;
}
}
public boolean hasNext() {
return !stack.isEmpty();
}
public int next() {
TreeNode node = stack.pop();
if(node.right != null){
TreeNode node = node.right;
while(node != null){
stack.add(node);
node = node.left;
}
}
return node.val;
}
}