关闭

实现二叉搜索树迭代器(算法)

203人阅读 评论(0) 收藏 举报
分类:

实现一个二叉搜索树迭代器,至少实现hasNext() 和next()函数。

class BSTIterator implements Iterator< Integer> 
{
	private Stack<TreeNode> stack = new Stack<TreeNode>();
	BSTIterator(TreeNode root)
	{
		pushLeft(root);
	}
	public boolean hasNext()
	{
		return !stack.isEmpty();
	}
	public int next()
	{
		TreeNode x = stack.pop();
		pushLeft(x.right);	
		return x.val;
	}
	private void pushLeft(TreeNode x)
	{
		while(x != null)
		{
			stack.push(x);
			x = x.left;
		}
	}
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23088次
    • 积分:1143
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:7篇
    • 译文:49篇
    • 评论:1条
    文章分类
    最新评论