递归方法:
public TreeNode invertTree(TreeNode root) {TreeNode m;
if(root==null){
return root;
}
else if(root.left==null&&root.right==null){
return root;
}
m=invertTree(root.left);
root.left=invertTree(root.right);
root.right=m;
return root;
}
迭代方法:
public TreeNode invertTree(TreeNode root) {
if(root==null){
return root;
}
TreeNode m=null;
TreeNode root1=null;
Queue<TreeNode> queue = new LinkedList();
queue.offer(root);
while(!queue.isEmpty()){
root1=queue.poll();
if(root1.left!=null){
queue.offer(root1.left);
}
if(root1.right!=null){
queue.offer(root1.right);
}
m=root1.left;
root1.left=root1.right;
root1.right=m;
}
return root;
}
写迭代方法的时候 while写成了if 自己看了好几遍没看出来