首页 > 代码库 > LeetCode 226. Invert Binary Tree (反转二叉树)

LeetCode 226. Invert Binary Tree (反转二叉树)

Invert a binary tree.

     4
   /     2     7
 / \   / 1   3 6   9
to
     4
   /     7     2
 / \   / 9   6 3   1
Trivia:
This problem was inspired by this original tweet by Max Howell:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.

 


题目标签:Tree

  这道题目给了我们一个二叉树,让我们把它反转一下。对于每一个点,它的左边和右边子树需要对调一下。利用postOrder 来遍历树,当走到最低端的时候,点 == null, 返回null, 对于每一个点,把它的left 和right 互换一下。return 这个点。

 

 

Java Solution:

Runtime beats 27.97% 

完成日期:07/04/2017

关键词:Tree

关键点:把left 和right 互换

 

 

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 public class Solution 
11 {
12     public TreeNode invertTree(TreeNode root) 
13     {
14         if(root == null)
15             return null;
16         
17         // continue children
18         invertTree(root.left);
19         invertTree(root.right);
20         
21         // swap left and right
22         TreeNode temp;
23         temp = root.left;
24         root.left = root.right;
25         root.right = temp;
26         
27         return root;
28     }
29 }

参考资料:N/A

 

LeetCode 226. Invert Binary Tree (反转二叉树)