把二叉树所有节点的的左右子树反转。
思路:
既然所有节点的左右子树进行反转,就需要对所有节点遍历。
选择前序遍历,因为先遍历root,然后反转它的左右子树,再对左右子树遍历。
class Solution {
public TreeNode invertTree(TreeNode root) {
preOrder(root);
return root;
}
void preOrder(TreeNode root) {
if(root == null) return;
TreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;
preOrder(root.left);
preOrder(root.right);
}
}