题目描述:请完成一个函数,输入一个二叉树,该函数输出他的镜像
这个函数主要使用的思想就是循环,上一篇文章主要是转载了剑指offer的题目,但是里面并没有说明怎么用循环解法来解以下为承接上一篇博文的循环解法;
主要思想用队列的思想;
二叉树结点定义如下:
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode m_pLeft;
BinaryTreeNode m_pRight;
};
主程序如下
void MirrorRecursively(BinaryTreeNode *pNode )
{
queue<BinaryTreeNode*>p;
p.push(pNode);
while(!p.empty())
{
BinaryTreeNode *r=p.front;
p.pop();
if(r->m_pLeft)
p.push(r->m_pLeft);
if(r->m_pRight)
p.push(r->m_pRight);
BinaryTreeNode*temp=r->m_pLeft;
r->m_pLeft=r->m_pRight;
r->m_pRight=temp;
}
}