class BSTIterator {
Deque<TreeNode> stack;
public BSTIterator(TreeNode root) {
stack = new ArrayDeque<>();
leftInOrder(root);
}
private void leftInOrder(TreeNode node) {
while (node != null) {
stack.push(node);
node = node.left;
}
}
/** @return the next smallest number */
public int next() {
TreeNode curr = stack.pop();
if (curr.right != null) {
leftInOrder(curr.right);
}
return curr.val;
}
/** @return whether we have a next smallest number */
public boolean hasNext() {
return stack.size() > 0;
}
}
173. 二叉搜索树迭代器
最新推荐文章于 2021-05-14 21:17:51 发布