LeetCode:173. 二叉搜索树迭代器

    技术2022-07-10  134

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class BSTIterator { public: vector<int>res; int i=0; void increment() { i=i+1; } BSTIterator(TreeNode* root) { res=inorderTraversal(root); } vector<int> inorderTraversal(TreeNode* root) { if(root==NULL) { return res; } if(root->left!=NULL) { inorderTraversal(root->left); } res.push_back(root->val); if(root->right!=NULL) { inorderTraversal(root->right); } return res; } /** @return the next smallest number */ int next() { int temp= res[i]; increment(); return temp; } /** @return whether we have a next smallest number */ bool hasNext() { return i<res.size(); } }; /** * Your BSTIterator object will be instantiated and called as such: * BSTIterator* obj = new BSTIterator(root); * int param_1 = obj->next(); * bool param_2 = obj->hasNext(); */
    Processed: 0.013, SQL: 9