题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。
总结:
(1).分析规律,若根节点存在左、右节点,每次交换左右节点;
(2).用递归的方式,直到该节点的左、右节点都为空,即已经到达叶节点位置。
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
void Mirror(TreeNode *pRoot) {
if(pRoot==NULL)
return;
if(pRoot->left==NULL&&pRoot->right==NULL)
return;
TreeNode *T;//左右节点交换临时存储的变量
T=pRoot->left;//先把左边存起来
pRoot->left=pRoot->right;//左边等于右边
pRoot->right=T;//右边等于左边
if(pRoot->left!=NULL)//只要左节点不为空,一直交换
Mirror(pRoot->left);//递归
if(pRoot->right!=NULL)//同上
Mirror(pRoot->right);
}
};