题目描述
二叉树的镜像
操作给定的二叉树,将其变换为源二叉树的镜像
思路
题目不难理解,其实就是二叉树左右子树的转换,用很适合用递归来做
如果树为空 什么都不干
树不为空,交换左右子树
然后再递归交换左右子树的左右子树即可
代码
public void Mirror(TreeNode root) {
if (root != null){
TreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;
Mirror(root.left);
Mirror(root.right);
}
}
又看到另一种更棒的写法
public TreeNode mirrorTree(TreeNode root) {
if (root == null) return null;
TreeNode tmp = root.left;
root.left = mirrorTree(root.right);
root.right = mirrorTree(tmp);
return root;
}