题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
1、思路分析
采用递归算法。首先判断特殊情况也即递归跳出的条件,当前root结点为空或者其左右子树均为空。接着是交换当前结点的左右结点,使用中间结点tmp进行过渡,交换完成后,进行递归调用,左右结点的调用顺序可以随意。非递归算法需要使用栈,先将根结点入栈,进行当栈不为空的循环,先弹出栈顶元素,交换该元素的左右结点,再分别将左右结点入栈。
2、代码
public class Solution {
public void Mirror(TreeNode root) {
if(root == null) return;
if(root.left==null && root.right==null) return;
TreeNode tmp = new TreeNode(-1);
tmp = root.left;
root.left = root.right;
root.right = tmp;
//Mirror(root.right);
Mirror(root.left);
Mirror(root.right);
}
}


京公网安备 11010502036488号