20170928_二叉树的镜像
//二叉树的镜像
/*
请完成一个函数,输入的是一个二叉树,输出该二叉树的镜像。
*/
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<numeric>
#include<functional>
using namespace std;
struct BinTreeNode
{
int value;
BinTreeNode *pLeft;
BinTreeNode *pRight;
BinTreeNode(int x):value(x),pLeft(nullptr),pRight(nullptr) {};
};
void MirrorTree(BinTreeNode *pNode)
{
if(pNode==nullptr)
return;
if(pNode->pLeft==nullptr && pNode->pRight==nullptr)
return;
BinTreeNode *temp=pNode->pLeft;
pNode->pLeft=pNode->pRight;
pNode->pRight=temp;
if(pNode->pLeft!=nullptr)
MirrorTree(pNode->pLeft);
if(pNode->pRight!=nullptr)
MirrorTree(pNode->pRight);
}