class BSTIterator(object):
def __init__(self, root):
“”” :type root: TreeNode “”” self.visit = root self.stack = []
def hasNext(self):
“”” :rtype: bool “”” return len(self.stack) != 0 or self.visit
def next(self):

“”” :rtype: int “”” while self.visit:

self.stack.append(self.visit) self.visit = self.visit.left

node = self.stack.pop() self.visit = node.right return node.val

if __name__ == ‘__main__’:

from bst import tree

root = tree() i, v = BSTIterator(root), [] while i.hasNext():

v.append(i.next())

print v