题目描述
实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。
调用 next() 将返回二叉搜索树中的下一个最小的数。
思路
代码
class TreeNode:
def __init__(self,x):
self.val = x
self.left = None
self.right = None
class BSTIterator:
def __init__(self,root:TreeNode):
self.nodes_sorted = []
self.index = -1
self._inorder(root)
def _inorder(self,root):
if not root:
return
self.inorder(root.left)
self.nodes_sorted.append(root.val)
self.inorder(root.right)
def next(self) ->int:
self.index += 1
return self.nodes_sorted[self.index]
def hasnext(self) -> bool:
return self.index + 1 < len(self.nodes_sorted)
# obj = BSTIterator(root)
# param_1 = obj.next()
# param_2 = obj.hasNext()