Invert Binary Tree

题目:

Invert a binary tree.

     4
   /   
  2     7
 /    / 
1   3 6   9

to

     4
   /   
  7     2
 /    / 
9   6 3   1

代码:
 1     public TreeNode invertTree(TreeNode root) 
 2     {
 3         TreeNode newroot = root;
 4         if(root==null)return newroot;
 5         helper(root,newroot);
 6         return newroot;
 7         
 8     }
 9     
10     public TreeNode helper(TreeNode root,TreeNode newroot)
11     {
12         if(root==null) return newroot;
13         TreeNode temp = root.left;
14         root.left=root.right;
15         root.right=temp;
16         helper(root.left,newroot);
17         helper(root.right,newroot);
18         return newroot;
19         
20     }

解法二:

public class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) 
        {
            return null;
        }

        TreeNode left = root.left,right = root.right;
        root.left = invertTree(right);
        root.right = invertTree(left);
        return root;
    }

}

reference: https://leetcode.com/discuss/40001/straightforward-dfs-recursive-iterative-bfs-solutions

解法二思路如下:

原文地址:https://www.cnblogs.com/hygeia/p/4772102.html