美文网首页
173. Binary Search Tree Iterator

173. Binary Search Tree Iterator

作者: yangqi916 | 来源:发表于2017-01-09 16:06 被阅读0次

173. Binary Search Tree Iterator

本题考的是使用stack去非递归的中序遍历二叉搜索树


/**
 * 本题考的是使用stack去非递归的中序遍历二叉搜索树
 *
 */
class BSTIterator {
    
    //Definition for a binary tree node.
    struct TreeNode {
        int val;
        TreeNode *left;
        TreeNode *right;
        TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };
    
    stack<TreeNode*>s;
    TreeNode* current = NULL;
    
public:
    BSTIterator(TreeNode *root) {
        current = root;
    }
    
    /** @return whether we have a next smallest number */
    bool hasNext() {
        return current != NULL || !s.empty();
    }
    
    /** @return the next smallest number */
    int next() {
        while (current) {
            s.push(current);
            current = current->left;
        }
        
        current = s.top();
        s.pop();
        int val = current->val;
        current = current->right;
        
        return val;
    }
};

相关文章

网友评论

      本文标题:173. Binary Search Tree Iterator

      本文链接:https://www.haomeiwen.com/subject/otrhbttx.html