173 binary search tree iterator

public class BSTIterator {
   Stack<TreeNode> stack;
   public BSTIterator(TreeNode root) {
       stack = new Stack<TreeNode>();
       pushThePath(stack, root);
   }
   
 
public void pushThePath(Stack st, TreeNode root){
       while(root != null){
           st.push(root);
           root = root.left;
       }
   }

   /** @return whether we have a next smallest number */
   public boolean hasNext() {
       return !stack.isEmpty();
   }

   /** @return the next smallest number */
   public int next() {
       TreeNode cur = stack.pop();
       pushThePath(stack, cur.right);
       return cur.val;
   }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容