博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 173-Binary Search Tree Iterator(medium)
阅读量:5457 次
发布时间:2019-06-15

本文共 1340 字,大约阅读时间需要 4 分钟。

Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.

Calling next() will return the next smallest number in the BST.

Note: next() and hasNext() should run in average O(1) time and uses O(h) memory, where h is the height of the tree.

 

这是从leetcode上看到的别人的解法,觉得很厉害,po在这里。https://leetcode.com/problems/binary-search-tree-iterator/discuss/52525/My-solutions-in-3-languages-with-Stack

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class BSTIterator {    Stack
stack=new Stack<>(); public BSTIterator(TreeNode root) { pushAll(root); } public void pushAll(TreeNode root) { while(root!=null){ stack.push(root); root=root.left; } } /** @return whether we have a next smallest number */ public boolean hasNext() { return !stack.isEmpty(); } /** @return the next smallest number */ public int next() { TreeNode node=stack.pop(); pushAll(node.right); return node.val; }}/** * Your BSTIterator will be called like this: * BSTIterator i = new BSTIterator(root); * while (i.hasNext()) v[f()] = i.next(); */

 

转载于:https://www.cnblogs.com/yshi12/p/9734796.html

你可能感兴趣的文章
关于RTSP-Over-HTTP
查看>>
SQL SERVER 2005如何建立自动备份的维护计划
查看>>
深入剖析C#的多态
查看>>
SQL2008 用户'sa'登录失败(错误18456)图文解决方法
查看>>
json属性名必须加引号的讨论
查看>>
Winform--数据库链接(EF CodeFirst)
查看>>
TCP的发送缓冲区和接收缓冲区
查看>>
SQL Server的导出导入方式有
查看>>
Unity3D_(Shuriken粒子系统)制作简单的烟花爆炸效果
查看>>
3. Longest Substring Without Repeating Characters
查看>>
织梦添加搜索功能
查看>>
JDK的安装和环境变量配置
查看>>
jmeter学习记录--05--Beanshell2
查看>>
HDU1402 HDU4609 FFT快速DFT
查看>>
DataGridView添加一行数据、全选、取消全选、清空数据、删除选中行
查看>>
抽象工厂模式
查看>>
数据库连接数使用情况监控
查看>>
<java基础学习>02JAVA的基础组成
查看>>
共享路径
查看>>
【动态语言和静态语言】动态语言和静态语言的认识,定义
查看>>