方法一:递归 采用先序遍历
public TreeNode invertTree(TreeNode root){
if(root==null) return null;
TreeNode temp=root.left;
root.left=root.right;
root.right=temp;
invertTree(root.left);
invertTree(root.right);
return root;
}
方法二:层序遍历
public TreeNode invertTree(TreeNode root){
if(root==null) return null;
Queue<TreeNode> queue=new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()){
TreeNode node=queue.poll();
TreeNode temp=node.left;
node.left=node.right;
node.right=temp;
if(node.left!=null) queue.add(node.left);
if(node.right!=null) queue.add(node.right);
}
return root;
}