您的位置:首页 > 其它

二叉树的镜像

2015-01-14 10:02 176 查看
面试题:19二叉树的镜像

题目:请完成一个函数,输入一个二叉树,该函数输出他的镜像。

二叉树的结点定义如下:

struct BinaryTreeNode

{

int value;

BinaryTreeNode* Left;

BinaryTreeNode* Right;

};

分析:所谓二叉树的镜像就是非叶结点的左右子树交换,但注意边界情况:输入的树为空。
void MirrorRecursively(BinaryTreeNode *pNode)
{
if(pNode == NULL)
{
return ;
}

if(pNode->Left ==NULL && pNode->Right == NULL)
{
return ;
}

BinaryTreeNode *pTemp = pNode->Left;
pNode->Left = pNode->Right;
pNode->Right = pTemp;

if(pNode->Left != NULL)
{
MirrorRecursively(pNode->Left);
}

if(pNode->Right != NULL)
{
MirrorRecursively(pNode->Right);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: