1、二叉树的镜像(剑指offer:面试题19)
二叉树的镜像,就是翻转一棵树,相当与求对称轴图形(如下右图所示)
解题思想:
先序遍历这棵树的每一个节点,如果遍历到的节点有子节点,就交换它的两个子节点,当交换完所有非子节点的左右子节点之后,就得到该树的镜像
#include<iostream>
using namespace std;
struct BinaryTreeNode //二叉树的结构
{
int data;
BinaryTreeNode* pLeft;
BinaryTreeNode* pRight;
};
void MirrorRecusively(BinaryTreeNode *pNode)
{
if(pNode == NULL)
{
return ;
}
if(pNode->pLeft == NULL && pNode->pRight == NULL)
{
return ;
}
BinaryTreeNode * pTme = pNode->pLeft;
pNode->pLeft = pNode->pRight;
pNode->pRight = pTme;
if(pNode