Sunday, October 14, 2012

LevelReverse


void LevelReverse(BSTreeNode *pRoot)
{
    if(NULL == pRoot)
        return;
    queue<BSTreeNode*> treequeue;
   
    treequeue.push(pRoot);
    treequeue.push(NULL);
   
    while(treequeue.size())
    {
        BSTreeNode *node = treequeue.front();
       
        treequeue.pop();
        if(node)
        {
            if(node->left)
                treequeue.push(node->left);
            if(node->right)
                treequeue.push(node->right);
            cout<<node->data<<' ';
        }
        else if(treequeue.size())
        {
            treequeue.push(NULL);
            cout<<endl;  
        }  
    }

}

No comments:

Post a Comment