题目来自剑指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); }