当前位置:网站首页>Leetcode problem solving -- 173 Binary search tree iterator
Leetcode problem solving -- 173 Binary search tree iterator
2022-07-06 03:07:00 【Snowy solitary boat】
Iterative thinking
private TreeNode node;
private Stack<TreeNode> stack;
public BSTIterator(TreeNode root) {
this.node =root;
stack = new Stack<>();
}
public int next() {
while (node !=null){
stack.push(node);
node = node.left;
}
node = stack.pop();
int next = node.val;
node = node.right;
return next;
}
public boolean hasNext() {
return node !=null||!stack.isEmpty();
}
Ideas : The iterative scheme based on the middle order traversal is improved
Every call next Get the value of a node
At the same time, the judgment conditions of the original cycle are extracted to hasNext Method to go
Be careful :
This scheme is based on the understanding of the iterative method of middle order traversal , If a little partner doesn't know , And I want to know more about the explanation idea of middle order traversal iteration , Sure Click here to jump
Other options
In fact, you can recursively traverse the tree once , Put it in an array , Creating index variables can also achieve the above functions ,leetcode The official also has corresponding solutions , But I want to , In fact, iterators are originally what I can do as much as you want , If it is realized in this way , Small amount of data is OK , If it's big data , It will undoubtedly cause bad time loss , So I didn't write it out , Interested students can Click here Jump leetcode Official explanation
边栏推荐
- Derivation of anti Park transform and anti Clarke transform formulas for motor control
- Misc (eternal night), the preliminary competition of the innovation practice competition of the National College Students' information security competition
- 主数据管理理论与实践
- 【若依(ruoyi)】设置主题样式
- Rust language -- iterators and closures
- 2.13 simulation summary
- 如何做好功能测试
- 微服务注册与发现
- Master data management theory and Practice
- Handwriting database client
猜你喜欢

RobotFramework入门(二)appUI自动化之app启动

Analyze menu analysis

OCR文字识别方法综述

Selenium share

PMP practice once a day | don't get lost in the exam -7.5

全国大学生信息安全赛创新实践赛初赛---misc(永恒的夜)

Maturity of master data management (MDM)

Mysql database operation

Jenkins basic knowledge ----- detailed explanation of 03pipeline code

4. File modification
随机推荐
Selenium share
【若依(ruoyi)】启用迷你导航栏
Linear regression and logistic regression
Custom attribute access__ getattribute__/ Settings__ setattr__/ Delete__ delattr__ method
Sign SSL certificate as Ca
Who is the winner of PTA
Audio-AudioRecord Binder通信机制
What is the investment value of iFLYTEK, which does not make money?
jsscript
Redis cluster deployment based on redis5
2.12 simulation
深度解析链动2+1模式,颠覆传统卖货思维?
解决:AttributeError: ‘str‘ object has no attribute ‘decode‘
【paddle】加载模型权重后预测报错AttributeError: ‘Model‘ object has no attribute ‘_place‘
Game theory matlab
OCR文字識別方法綜述
[ruoyi] enable Mini navigation bar
Redis SDS principle
八道超经典指针面试题(三千字详解)
CSP date calculation