力扣面试 150二叉搜索树迭代器 中序遍历 栈模拟递归 步骤拆分

Problem: 173. 二叉搜索树迭代器

思路

👩‍🏫 三叶

复杂度

时间复杂度: O ( 1 ) O(1) O(1)

空间复杂度: O ( h ) O(h) O(h)

Code

Java 复制代码
class BSTIterator {
Stack<TreeNode> d = new Stack<>();

	public BSTIterator(TreeNode root)
	{
		dfsLeft(root);
	}

	public int next()
	{
		TreeNode root = d.pop();
		int ans = root.val;
		root = root.right;
		dfsLeft(root);
		return ans;
	}

	public boolean hasNext()
	{
		return !d.isEmpty();
	}

	void dfsLeft(TreeNode root)
	{
		while (root != null)
		{
			d.push(root);
			root = root.left;
		}
	}
}
相关推荐
Jerry4 小时前
LeetCode 189. 轮转数组
算法
Jerry5 小时前
LeetCode 739. 每日温度
算法
liang_jy8 小时前
内存管理(二)—— 覆盖与交换
面试·操作系统
触底反弹8 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
liang_jy9 小时前
内存管理(一)—— 内存管理的概念
面试·操作系统
2601_954526759 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法
叩码以求索10 小时前
浅谈:算法萌新如何高效刷题应对面试(一)
算法·面试·职场和发展
c2385612 小时前
把 C++ 内存分配拆透:new 与 malloc 的三层血缘
开发语言·c++·算法
aaaameliaaa13 小时前
指针之总结
c语言·笔记·算法
宵时待雨13 小时前
优选算法专题9:哈希表
数据结构·算法·散列表