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

 

解法二思路如下:

 

posted @ 2015-08-31 02:11  Hygeia  阅读(144)  评论(0编辑  收藏  举报