题目:操作给定的二叉树,将其变换为源二叉树的镜像
思路:1 分析左右子节点。
2 在分别转换左,右子节点
class Solution {
public:
void Mirror(TreeNode *pRoot) {
//2017-6-20 周二 什么没做。
//若根节点只有左子节点或者只有右节点
//若根节点点左右子节点都没有
//若根节点有左右节点。
//麻蛋理解错了。
if(pRoot==NULL) return ;
//1 这里除了问题
if(pRoot->left==NULL&&pRoot->right==NULL) return ;
//为什么,
//忽略单个情况下的换算?
// if(pRoot->left!=NULL&&pRoot->right!=NULL)
// {
TreeNode * pTmp=pRoot->left;
pRoot->left=pRoot->right;
pRoot->right=pTmp;
// }
//处理左右节点。
if(pRoot->left!=NULL)
Mirror(pRoot->left);
if(pRoot->right!=NULL)
Mirror(pRoot->right);
}
};