您的位置:首页 > 其它

二叉树的镜像

2015-06-10 17:01 225 查看
题目:请按成一个函数 输入一个二叉树 该函数输出它的镜像

二叉树结点的定义如下:

struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode * m_pLeft;
BinaryTreeNode * m_pRight;
};
先序遍历二叉树 如果该结点不是叶子结点 则交换其左右孩子 当交换完所有非叶子结点 就得到了镜像的二叉树

struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode * m_pLeft;
BinaryTreeNode * m_pRight;
};
void mirror(BinaryTreeNode * root)
{
BinaryTreeNode *t=NULL;
if(root==NULL || (root->m_pLeft==NULL && root->m_pRight==NULL ))
return;
{
t=root->m_pLeft;
t->m_pLeft=t->m_pRight;
t->m_pRight=t;
}
if(root->m_pLeft!=NULL)
mirror(root->m_pLeft);
if(root->m_pRight!=NULL)
mirror(root->m_pRight);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: