[LeetCode] Invert Binary Tree

Invert a binary tree.

     4
   /   
  2     7
 /    / 
1   3 6   9

to

     4
   /   
  7     2
 /    / 
9   6 3   1

思路:利用temp进行交换,采用递归从顶至下,终止条件本身为空或者是叶子节点。
时间复杂度:O(n)
代码:
    public TreeNode invertTree(TreeNode root) {
        if(root==null || (root.left==null && root.right==null)) return root;
        TreeNode tempNode=null;
        tempNode=root.left;
        root.left=root.right;
        root.right=tempNode;
        invertTree(root.left);
        invertTree(root.right);
        return root;
    }

优化:

扩展:

原文地址:https://www.cnblogs.com/maydow/p/4641167.html