Leetcode:Binary Search Tree Iterator
2015-04-07 12:37
375 查看
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.
Calling
Note:
run in average O(1) time and uses O(h) memory, where h is the height of the tree.
即找出二叉查找树中最小的元素。
思路:找最小值,可以参考中序遍历,借助栈!每弹出一个元素,才增加栈中元素,不用马上遍历整颗树!
实现代码:
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.
即找出二叉查找树中最小的元素。
思路:找最小值,可以参考中序遍历,借助栈!每弹出一个元素,才增加栈中元素,不用马上遍历整颗树!
实现代码:
class BSTIterator { stack<TreeNode *> myStack; public: BSTIterator(TreeNode *root) { TreeNode *node=root; while(node!=NULL) { myStack.push(node); node = node->left; } } /** @return whether we have a next smallest number */ bool hasNext() { return !myStack.empty(); } /** @return the next smallest number */ int next() { TreeNode *tmpNode = myStack.top(); int res = tmpNode->val; myStack.pop(); tmpNode=tmpNode->right; while(tmpNode!=NULL) { myStack.push(tmpNode); tmpNode = tmpNode->left; } return res; } };
相关文章推荐
- leetcode 173. Binary Search Tree Iterator
- Binary Search Tree Iterator leetcode
- LeetCode(173) Binary Search Tree Iterator解题报告
- LeetCode #173 - Binary Search Tree Iterator - Medium
- LeetCode(173) Binary Search Tree Iterator
- [LeetCode]Binary Search Tree Iterator
- [LeetCode]173. Binary Search Tree Iterator
- LeetCode——Binary Search Tree Iterator
- LeetCode Binary Search Tree Iterator
- leetcode -- Binary Search Tree Iterator -- 重点
- [LeetCode] Binary Search Tree Iterator
- [leetcode]Binary Search Tree Iterator
- [LeetCode] Binary Search Tree Iterator
- [C++]LeetCode: 93 Binary Search Tree Iterator (经典题,非递归的中序遍历)
- LeetCode Binary Search Tree Iterator
- [LeetCode]Binary Search Tree Iterator
- [leetcode 173] Binary Search Tree Iterator-------为二叉搜索树实现迭代器功能
- LeetCode173—Binary Search Tree Iterator
- [leetcode][tree][stack] Binary Search Tree Iterator
- [LeetCode] Binary Search Tree Iterator