思路:
我们从根节点开始递归的进行遍历,从叶子结点开始翻转。如果当前遍历的节点左右两颗树都已经翻转了,那么我们只需要交换两颗树的位置即可。
package leetcode;
public class demo13 {
public TreeNode invertTree(TreeNode root){
if(root==null){
return null;
}
TreeNode right=invertTree(root.right);
TreeNode left =invertTree(root.left);
root.left=right;
root.right=left;
return root;
}
public static void main(String[] args) {
//树b
TreeNode b=new TreeNode(1);
b.left=new TreeNode(5);
// b.left.left=new TreeNode(3);
// b.left.right=new TreeNode(6);
b.right=new TreeNode(6);
// b.right.left=new TreeNode(6);
// b.right.right=new TreeNode(3);
System.out.println(b);
demo13 ss=new demo13();
System.out.println( ss.invertTree(b));
}
}