解法一:
public TreeNode invertTree(TreeNode root)
{
ArrayDeque<TreeNode> queue = new ArrayDeque<TreeNode>();
queue.add(root);
while (!queue.isEmpty()) {
TreeNode temp1 = queue.pollFirst();
TreeNode temp2 = temp1.left;
temp1.left = temp1.right;
temp1.right = temp2;
if (temp1.left!=null) {
queue.addLast(temp1.left);
}
if (temp1.right!=null) {
queue.addLast(temp1.right);
}
}
return root;
}
解法二:
public TreeNode invertTree(TreeNode root)
{
if (root==null)
return null;
TreeNode tempNode = root.left;
root.left = invertTree(root.right);
root.right = invertTree(tempNode);
return root;
}