image.png

解题思路

使用递归来做,先对左右子树分别进行交换,然后交换左右子树

  1. public TreeNode invertTree(TreeNode root) {
  2. //递归的终止条件
  3. if(root==null)
  4. return null;
  5. //反转左子树
  6. invertTree(root.left);
  7. //反转右子树
  8. invertTree(root.right);
  9. //交换左右子树
  10. TreeNode temp = root.left;
  11. root.left = root.right;
  12. root.right = temp;
  13. //返回根节点
  14. return root;
  15. }