Tree inorder traversal Iterator

TreeNode a;
while (a.hasNext())
   visit(a.next());
}"
问:给TreeNode写Iterator,使得以上代码可以in order traversal

 

class TreeNode
{
TreeNode *root;
public:
    bool hasNext()
    {
        return root!=NULL || !stack.empty();
    }
    TreeNode * next()
    {
        TreeNode * ret = NULL;
        while(hashNext())
        {
            if(root)
            {
                stack.push(root);
                root = root->left;
            }
            else
            {
                root = stack.top();
                stack.pop();
                ret = root;
                root = root->right;
                return ret;
            }
        }
        return NULL;
    }
};

 

posted on 2014-11-24 07:28  fatemaster  阅读(145)  评论(0)    收藏  举报

导航