173_二叉搜索树迭代器

简介: 173_二叉搜索树迭代器

173_二叉搜索树迭代器

 

package 二叉树.二叉搜索树;
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
/**
 * https://leetcode-cn.com/problems/binary-search-tree-iterator/ _173_二叉搜索树迭代器
 * 
 * @author Huangyujun 迭代器(容器,提前存储了按照一定规则摆放的数据)
 */
public class _173_二叉搜索树迭代器 {
    class BSTIterator {
        // 方法一:定义了一个list 容器存放好结果(递归实现)
        private int idx;
        private List<Integer> arr;
        public BSTIterator(TreeNode root) {
            idx = 0;
            arr = new ArrayList<Integer>();
            inorderTraversal(root, arr);
        }
        public int next() {
            return arr.get(idx++);
        }
        public boolean hasNext() {
            return idx < arr.size();
        }
        private void inorderTraversal(TreeNode root, List<Integer> arr) {
            if (root == null) {
                return;
            }
            inorderTraversal(root.left, arr);
            arr.add(root.val);
            inorderTraversal(root.right, arr);
        }
    }
    // 迭代实现
    class BSTIterator2 {
        private TreeNode cur;
        private Deque<TreeNode> stack;
        public BSTIterator2(TreeNode root) {
            cur = root;
            stack = new LinkedList<TreeNode>();
        }
        public int next() {
            while (cur != null) {
                stack.push(cur);
                cur = cur.left;
            }
            cur = stack.pop();
            int ret = cur.val;
            cur = cur.right;
            return ret;
        }
        public boolean hasNext() {
            return cur != null || !stack.isEmpty();
        }
    }
}
目录
相关文章
|
5月前
|
算法 C++
C++二叉搜索树中第K小的元素
C++二叉搜索树中第K小的元素
|
8月前
|
存储 算法
二叉树的三序遍历
简要介绍二叉树的三序遍历和重构和代码实现。
|
9月前
|
存储 Java
二叉树的迭代器手写实现
二叉树的迭代器手写实现
|
10月前
二叉树四种遍历的实现
二叉树四种遍历的实现
76 0
|
10月前
二叉树的实现(前中后层序四种遍历)
二叉树的实现(前中后层序四种遍历)
38 0
|
11月前
二叉树的实现和四种遍历
二叉树的实现和四种遍历
|
iOS开发
二叉树非递归前中后遍历
因为个人身体原因,本周都在医院住院治疗身体,身边没有电脑,只能分享一些这周看过的比较好的书籍内容。iPad上传csdn图片顺序会有误,看书的页码就好。
二叉树非递归前中后遍历
#### [二叉搜索树迭代器](https://leetcode.cn/problems/binary-search-tree-iterator/)
#### [二叉搜索树迭代器](https://leetcode.cn/problems/binary-search-tree-iterator/)

热门文章

最新文章