力扣面试 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;
		}
	}
}
相关推荐
elangyipi12318 小时前
前端面试题:如何减少页面重绘跟重排
前端·面试·html
爱学大树锯18 小时前
592 · 查找和替换模式
算法
爱学大树锯18 小时前
775 · 回文对
算法
girl-072618 小时前
2025.12.26代码分析
数据结构·算法
大罗辑18 小时前
2026软考备考刷题:软件设计师经典100题(5)含详细解析
算法·软考·软件设计师·2026软考·软设备考
咕噜企业分发小米18 小时前
阿里云Milvus支持哪些向量检索算法?
算法·机器学习·milvus
蒙奇D索大19 小时前
【数据结构】排序算法精讲|折半插入排序全解:高效优化、性能对比、实战剖析
数据结构·学习·考研·算法·排序算法·改行学it
汽车仪器仪表相关领域19 小时前
ZDT-III 通用电机测试系统
数据库·算法·单元测试·压力测试·可用性测试
前端小白在前进19 小时前
力扣刷题:矩阵重叠
算法·leetcode·矩阵
东东的脑洞19 小时前
【面试突击】Kafka 核心面试知识点
面试·职场和发展·kafka