题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
左右对调,递归即可,虽然地一种更简洁,但是从跑的结果来看第二种更快,18ms,第一种26ms
public void Mirror(TreeNode root) {
if(root==null) return;
Mirror(root.right);
Mirror(root.left);
switchTreeNode(root, root.left, root.right);
}
public void switchTreeNode(TreeNode root, TreeNode left, TreeNode right){
root.right= left;
root.left= right;
}
public void Mirror(TreeNode root) {
if(root==null) return;
TreeNode tmp= new TreeNode(-1);
Mirror(root.right);
Mirror(root.left);
tmp.left= root.left;
root.left= root.right;
root.right= tmp.left;
}