题目
请完成一个函数,输入一棵二叉树,该函数输出它的镜像。
思路
先前序遍历这棵树的每个节点,如果遍历到的节点有子结点,就交换它的两个子结点。当交换完所有的非叶节点的左、右子节点之后,就得到了树的镜像。
C++实现
void MirrorRecuriverly(TreeNode* pNode)
{
if(pNode == nullptr)
return;
if(pNode->left == nullptr && pNode->right == nullptr)
return;
TreeNode* pTemp = pNode->left;
pNode->left = pNode->right;
pNode->right = pTemp;
if(pNode->left)
MirrorRecuriverly(pNode->left);
if(pNode->right)
MirrorRecuriverly(pNode->right);
}