//递归方法
void MirrorRecurively(BSTreeNode *pTreeNode)
{
if(NULL == pTreeNode)
return;
BSTreeNode *temp = pTreeNode->right;
pTreeNode->right = pTreeNode->left;
pTreeNode->left = temp;
if(NULL != pTreeNode->right)
MirrorRecurively(pTreeNode->right);
if(NULL != pTreeNode->left)
MirrorRecurively(pTreeNode->left);
}
//循环方法
void MirrorRecurively(BSTreeNode *pTreeNode)
{
if(NULL == pTreeNode)
return;
stack<BSTreeNode *> stackTreeNode;
stackTreeNode.push(pTreeNode);
while(stackTreeNode.size())
{
BSTreeNode *pNode = stackTreeNode.top();
stackTreeNode.pop();
BSTreeNode *temp = pNode->right;
pNode->right = pNode->left;
pNode->left = temp;
if(NULL != pNode->right)
stackTreeNode.push(pNode->right);
if(NULL != pNode->left)
stackTreeNode.push(pNode->left);
}
}