题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
思路:
//思路:
//从根开始遍历,如果遍历到的结点有子结点,交换他俩的两个子结点,
//交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像
public class Solution {
public void Mirror(TreeNode root){
//判断根节点是否为空
if(root == null){
return;
}
//判断两个子节点是否同时为空,为空,不交换;如果一个为空,需要交换
if(root.left==null&&root.right==null){
return;
}
//左右交换过程
TreeNode temp = root.left;
root.left=root.right;
root.right=temp;
//左节点作为新的根节点进行递归
if(root.left != null){
Mirror(root.left);
}
//右节点作为新的根节点进行递归
if(root.right != null){
Mirror(root.right);
}
}
}