[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;
    }

优化:

扩展:

posted @ 2015-07-12 16:55  Maydow  阅读(129)  评论(0编辑  收藏  举报