首页 > 代码库 > [leetcode]Binary Search Tree Iterator
[leetcode]Binary Search Tree Iterator
使用栈来记录可能的路径,栈顶一直是下一个元素。
class BSTIterator {public: stack<TreeNode *> path; BSTIterator(TreeNode *root) { path = stack<TreeNode *>(); TreeNode *node = root; while (node != NULL) { path.push(node); node = node->left; } } /** @return whether we have a next smallest number */ bool hasNext() { return !path.empty(); } /** @return the next smallest number */ int next() { TreeNode *node = path.top(); path.pop(); int ret = node->val; if (node->right != NULL) { node = node->right; path.push(node); while (node->left != NULL) { node = node->left; path.push(node); } } return ret; }};
[leetcode]Binary Search Tree Iterator
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。