package com.interview.books.leetcodeoj; import com.interview.leetcode.utils.TreeNode; import java.util.Stack; /** * Created_By: stefanie * Date: 14-12-31 * Time: 下午4:38 */ public class LOJ173_BSTIterator { Stack<TreeNode> nodes; public LOJ173_BSTIterator(TreeNode root) { nodes = new Stack(); pushLeft(root); } private void pushLeft(TreeNode node){ while(node != null){ nodes.push(node); node = node.left; } } /** @return whether we have a next smallest number */ public boolean hasNext() { return nodes.size() != 0; } /** @return the next smallest number */ public int next() { TreeNode node = nodes.pop(); pushLeft(node.right); return node.val; } }