题目描述
实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。
调用 next()
将返回二叉搜索树中的下一个最小的数。
示例:
1 | BSTIterator iterator = new BSTIterator(root); |
题解
DFS + 列表
需要写一个构造器, 然后实现两个方法. 因为要输出的是下一个最小的节点, 所以很容易想到中序遍历, 然后一个一个输出.
大致思路为:
- 写构造器, 当传入一个二叉搜索树时, 直接将其中序遍历, 并将结果用列表存放
- 初始化一个变量, 时刻记录当前输出到哪里, 即再次调用
next()
和hasNext()
时要查看的位置 - 当调用
next()
, 指针移动一位, 当调用hasNext()
, 指针不动
1 | class BSTIterator { |