力扣面试 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;
		}
	}
}
相关推荐
青 春 记 忆18 分钟前
LeetCode 53. 最大子数组和|Python 解法详解
python·算法·leetcode
豆瓣鸡30 分钟前
算法日记 - Day10
算法
戴西软件41 分钟前
戴西CAxWorks.VPG车辆工程仿真软件技术解析(上)——安全仿真体系的自动化构建
运维·网络·数据库·人工智能·算法·安全·自动化
zander2581 小时前
4. 寻找两个正序数组的中位数:用分割点代替合并
数据结构·算法
Kisorge1 小时前
【电机控制器】 基于STSPIN32G4的FOC控制
stm32·嵌入式硬件·算法
Elivs1 小时前
RMSNorm函数
人工智能·算法·机器学习
tudousisi2222 小时前
P4447 [AHOI2018初中组] 分组 题解复盘
算法
SNAKEpc121382 小时前
OpenGL(十一)- 变换管线
c语言·c++·算法·矩阵·图形渲染
码匠许师傅3 小时前
【C++ 面试真题】 C++ 中的 static 有什么作用?
c++·面试
饼饼学习空间智能4 小时前
遥操作数据能否提升机器人自主化水平?详解模仿学习、仿真放大与Sim2Real闭环
人工智能·算法