题目描述:输入一个二叉树,输出该二叉树的镜像
分析与解法:使用先序遍历方式。如果节点是非叶子节点,就交换左子树和右子树指针,注意退出条件即可,掌握前序遍历这个题目解这道题目难度不大。
代码如下:
struct Node
{
Node *m_pLeft;
Node *m_pRight;
char chValue;
};
void mirror(Node *pRoot)
{
if(pRoot==NULL){
return;
}
if(pRoot->m_pLeft || pRoot->m_pRight){
swap(pRoot->m_pLeft,pRoot->m_pRight);
}
if(pRoot->m_pLeft){
mirror(pRoot->m_pLeft);
}
if(pRoot->m_pRight) {
mirror(pRoot->m_pRight);
}
}