1.问题描述
请完成一个函数,输入一个二叉树,该函数输出它的镜像。(来自《剑指offer》)
2. 分析
镜像就是在镜子中看到的景象,其实就是将左右子树交换。
3.代码
#include <stdio.h>
typedef struct node
{
int data;
struct node* lChild;
struct node* rChild;
}TreeNode;
void MirrorRecursively(TreeNode *head)
{
if (head == NULL)
{
return;
}
if (head->lChild == NULL && head->rChild == NULL)
{
return;
}
TreeNode *temp = head->lChild;
head->lChild = head->rChild;
head->rChild = temp;
if (head->lChild != NULL)
{
MirrorRecursively(head->lChild);
}
if (head->rChild != NULL)
{
MirrorRecursively(head->rChild);
}
}