« Back
in Leetcode Tree read.

Leetcode 226 Invert Binary Tree.

As I have already build this blog, I will move my notes of Leetcode problem from my Evernote. But it would take time.

Problem 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.

The problem here is not so difficult comparing to another Problem, which has the title of Populating Next Right Pointers in Each Node.

Just use the recursive to change every node's left and right child node. Then it is done.

And if you do not want to use recursive, then, use a stack to deal with it.

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */


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

        if(root!=null){
            TreeNode temp=root.left;
            root.left=root.right;
            root.right=temp;
        }
        invertTree(root.left);
        invertTree(root.right);
        return root;
    }
}
comments powered by Disqus