27.二叉树的镜像
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
《剑指Offer》 p157
题目思路
对于根节点,只需要交换左右两个节点的指针即可。
然后确定遍历二叉树的方式就行。
这里由于要先操作 根节点。所以采用前序遍历。 root->left->right的顺序。
代码
/*
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) {
TreeNode* tmp = pRoot->right;
pRoot->right = pRoot->left;
pRoot->left = tmp;
}
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};