BST Iterator
https://leetcode.com/explore/learn/card/introduction-to-data-structure-binary-search-tree/140/introduction-to-a-bst/1008/
class BSTIterator:
def __init__(self, root: TreeNode):
self.stack = []
self.root = root
self.leftMost(self.root)
def leftMost(self,node):
while node:
self.stack.append(node)
node = node.left
def next(self) -> int:
"""
@return the next smallest number
"""
node = self.stack.pop()
if node.right:
self.leftMost(node.right)
return node.val
def hasNext(self) -> bool:
"""
@return whether we have a next smallest number
"""
return len(self.stack) > 0
Last updated
Was this helpful?