考察知识点:二叉树的遍历变形
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
题解
分析
实质是树的遍历,每次递归需要将当前结点的左右子树调换
内置函数 swap 可直接实现左右子树调换,不需要申请临时变量
代码
/* 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) {
// pRoot 不为 NULL 时
if(pRoot){
// 调换 pRoot 左右子树
swap(pRoot->left,pRoot->right);
// 递归左子树
Mirror(pRoot->left);
// 递归右子树
Mirror(pRoot->right);
}
}
};