版本1:
public void Mirror(TreeNode root) {
if (root == null)
return;
swap(root);
Mirror(root.left);
Mirror(root.right);}
private void swap(TreeNode root) {
TreeNode t = root.left;
root.left = root.right;
root.right = t;}
它可以产生一棵镜像树,之后是一棵镜像树
8
/ \
6 10
/ \ / \
5 7 9 11
original tree
8
/ \
10 6
/ \ / \
11 9 7 5
mirror tree
版本2:
public class Solution {
public void Mirror(TreeNode root) {
if (root == null ){
return ;
}
swap(root.left,root.right);
Mirror(root.left);
Mirror(root.right);
}
private void swap(TreeNode left,TreeNode right) {
TreeNode temp = left;
left = right;
right = temp;
}}
我认为version2可以和version1一样,但是没有用。版本1可以产生一个镜像树。 所以,问题出在什么地方,我感到有些困惑。如果您能提供帮助,非常感谢。