LeetCode—173 Binary Search Tree Iterator
来源:互联网 发布:linux安装kvm虚拟机 编辑:程序博客网 时间:2024/06/05 05:15
思路:建立一个list,从root开始读left进list,如果left==null则停止。hasNext只要判断list.size是否为0;next取出list最后一个节点,然后判断该节点是否有right,有的话写入list,继续判断是否有left,有的话写入。
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class BSTIterator { List<TreeNode> list=new ArrayList<TreeNode>(); public BSTIterator(TreeNode root) { if(root!=null){ list.add(root); } while(list.size()>0){ TreeNode node=list.get(list.size()-1); if(node.left!=null){ list.add(node.left); node.left=null; }else{ break; } } } /** @return whether we have a next smallest number */ public boolean hasNext() { return list.size()!=0; } /** @return the next smallest number */ public int next() { TreeNode test=list.get(list.size()-1); list.remove(list.size()-1); if(test.right!=null){ list.add(test.right); while(true){ TreeNode node=list.get(list.size()-1); if(node.left!=null){ list.add(node.left); node.left=null; }else { break; } } } return test.val; }}/** * Your BSTIterator will be called like this: * BSTIterator i = new BSTIterator(root); * while (i.hasNext()) v[f()] = i.next(); */
0 0
- LeetCode—173 Binary Search Tree Iterator
- leetcode 173: Binary Search Tree Iterator
- leetcode-173 Binary Search Tree Iterator
- Leetcode[173]-Binary Search Tree Iterator
- LeetCode(173) Binary Search Tree Iterator
- [LeetCode 173] Binary Search Tree Iterator
- [leetcode-173]Binary Search Tree Iterator(java)
- 【LEETCODE】173-Binary Search Tree Iterator
- leetcode #173 Binary Search Tree Iterator
- LeetCode(173) Binary Search Tree Iterator
- 【leetcode】【173】Binary Search Tree Iterator
- 【LeetCode-173】Binary Search Tree Iterator
- Leetcode 173: Binary Search Tree Iterator
- LeetCode[173] Binary Search Tree Iterator
- LeetCode No.173 Binary Search Tree Iterator
- LeetCode #173 - Binary Search Tree Iterator - Medium
- [Leetcode] #173 Binary Search Tree Iterator
- Leetcode 173 Binary Search Tree Iterator
- Java解压缩zip - 解压缩多个文件或文件夹
- Spring的quartz定时器同一时刻重复执行二次的问题解决
- authbucket
- 大端小端,,,A和a的ascii码
- 【安卓】Android6.0的String源码被修改
- LeetCode—173 Binary Search Tree Iterator
- 解决iOS支付宝支付完毕后返回app
- MyBatis 总结
- ReactJs入门教程-精华版
- sipXecs系统快照
- java的动态绑定与静态绑定
- 成员变量、属性、合成方法
- maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
- Activity的生命周期(2)