力扣面试 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;
		}
	}
}
相关推荐
洛水水10 小时前
【力扣100题】63.最小覆盖子串
算法·leetcode
AllData公司负责人10 小时前
亲测丝滑,体验跃迁|AllData通过集成开源项目RustFS,多模态数据存储新范式
java·大数据·数据库·算法·数据分析·rustfs
磊 子10 小时前
AVL树的讲解
数据结构·算法
神奇小汤圆10 小时前
2026最新国内用户Claude Code 开发配置详细手册
面试
Trouvaille ~10 小时前
【Redis篇】Hash 哈希:字段级操作与对象存储的最佳实践
数据库·redis·后端·算法·缓存·哈希算法·键值对
悠仁さん10 小时前
数据结构 树 二叉树 堆 (链式二叉树模拟实现篇)
数据结构·算法
神奇小汤圆10 小时前
面试官:说一下 Agent 的常见范式,如何选型?
面试
z2005093010 小时前
今日算法(带回文问题的回溯)
算法·leetcode·回溯
洛水水10 小时前
【力扣100题】55.编辑距离
算法·leetcode·动态规划
Raink老师11 小时前
【AI面试临阵磨枪-75】游戏 AI Agent:NPC、剧情生成、攻略助手、社区问答、黑话适配
人工智能·游戏·面试