二叉树的镜像
直接转换法:并未构建树,只是对原来的树的结构做了调整,把左节点换到了右节点的位置
TreeNode* mirrorTree(TreeNode* root) {
if (root == nullptr) return nullptr;
//left和right反序
TreeNode* temp = root->left; //临时保存left节点
root->left = mirrorTree(root->right);
root->right = mirrorTree(temp);
return root;
}
构建一棵树,当节点存在时,新建树的左节点和右节点
TreeNode* copytree(TreeNode* root) {
if (root == nullptr) {
TreeNode* newroot = nullptr;
return newroot;
}
//递归创建树
else {
TreeNode* newroot = new TreeNode;
newroot->val = root->val;
newroot->left = copytree(root->right); //原节点的右子树作为新节点的左子树
new->right = copytree(root->left); //原节点的左子树作为新节点的右子树
return newroot;
}
}