力扣面试 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;
		}
	}
}
相关推荐
南北是北北3 分钟前
RecyclerView 进阶绑定:多类型 / 局部刷新(payload)/ 稳定 ID
面试
Hilaku9 分钟前
为什么我开始减少逛技术社区,而是去读非技术的书?
前端·javascript·面试
南北是北北18 分钟前
RecyclerView 的关键角色与各自职责/协同关系
面试
沐怡旸34 分钟前
【底层机制】Handler/Looper 实现线程切换的技术细节
android·面试
深栈34 分钟前
机器学习:支持向量机
算法·机器学习·支持向量机
刘海东刘海东1 小时前
结构型智能科技理论研究(草稿)
科技·算法
自由的疯1 小时前
优雅的代码java
java·后端·面试
C嘎嘎嵌入式开发1 小时前
(10)100天python从入门到拿捏《Python中的数据结构与自定义数据结构》
数据结构·python·算法
熬了夜的程序员1 小时前
【LeetCode】69. x 的平方根
开发语言·算法·leetcode·职场和发展·动态规划
.NET修仙日记1 小时前
2025年ASP.NETMVC面试题库全解析
面试·职场和发展·c#·asp.net·mvc·面试题·asp.net mvc