剑指offer-刷题笔记-简单题-JZ27 二叉树的镜像
版本1-递归是自己写的,else部分很好写,注意交换要用中间变量保存,然后一层一层向下反转,if部分开始一直报错,开始写的是下面这样,但是如果输入{},根节点为空,再访问左右子树一定报错,修改为(pRoot == nullptr),注意输入{2},{}不一样,{2}还可以访问左右子树(都为空),{}不可以访问
if(pRoot->left == nullptr && pRoot->right == nullptr)
{
return pRoot;
}
版本1-递归
class Solution {
public:
TreeNode* Mirror(TreeNode* pRoot) {
if(pRoot == nullptr)
{
return pRoot;
}
else{
TreeNode* temp;
temp = pRoot->left;
pRoot->left = pRoot->right;
pRoot->right = temp;
pRoot->left = Mirror(pRoot->left);
pRoot->right = Mirror(pRoot->right);
}
return pRoot;
}
};