题目来自剑指offer
题目:
举例:
思想:
先序遍历二叉树,每遍历一个结点时,都交换两个子树。
代码:
void MirrorRecursive(BinaryTreeNode* pRoot)
{
if (NULL == pRoot || (NULL == pRoot->m_pLeft && NULL == pRoot->m_pRight))
{
return;
}
//交换两个孩子
BinaryTreeNode* pSwapNode = pRoot->m_pLeft;
pRoot->m_pLeft = pRoot->m_pRight;
pRoot->m_pRight = pSwapNode;
//递归处理孩子
MirrorRecursive(pRoot->m_pLeft);
MirrorRecursive(pRoot->m_pRight);
}