题目:
操作给定的二叉树,将其变换为源二叉树的镜像。
二叉树的镜像定义:
源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
思路:
对这道题印象很深,因为有一次去面试碰到了典型的递归场景,对每个结点,交换其左右子结点即可
代码:
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public void Mirror(TreeNode root) {
if(null == root) return;
exChange(root);
}
public TreeNode exChange(TreeNode root){
if(null == root) return null;
TreeNode left = exChange(root.left);
TreeNode right = exChange(root.right);
root.left = right;
root.right = left;
return root;
}
}