Binary Search Tree Iterator leetcode
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.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
class BSTIterator { private: TreeNode *current = NULL; stack<TreeNode*> s; public: BSTIterator(TreeNode *root) { // initialize the current pointer current = root; } /** @return whether we have a next smallest number */ bool hasNext() { while(current){ s.push(current); current = current->left; } return !s.empty(); } /** @return the next smallest number */ int next() { TreeNode* node = s.top(); s.pop(); current = node->right; return node->val; } };
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步