二叉树的镜像
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
小刘解题
镜像二叉树就是原二叉树关于根节点的对称二叉树。
二叉树的递归:
①递:先进到最底层
②归:进行每一次递归函数的操作。将最底层的结果一层一层返回,最后得到根节点的目标值。如果需要需要中间值,可引入全局变量。
class Solution {
//每一次递归操作都是以当前节点为根节点进行操作
public TreeNode mirrorTree(TreeNode root) {
//1、此处为递归的退出条件
//如果单前节点为空,那么以这个节点的任何操作都无意义,所以直接返回空
if(root==null){
return null;
}
//2、开始进行递归(此处每次递归都会返回一个值,此处返回的是左右孩子的根节点)
TreeNode left = mirrorTree(root.left);
TreeNode right = mirrorTree(root.right);
//3、当前节点需要做的事情
//将单前节点的左右子树进行对换
root.left=right;
root.right=left;
return root;
}
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}