Invert a binary tree.
Example:
Input:
4 / 2 7 / / 1 3 6 9
Output:
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 f*** off.
Runtime: 92 ms, faster than 96.94% of C# online submissions for Invert Binary Tree.
Memory Usage: 22.1 MB, less than 28.89% of C# online submissions for Invert Binary Tree.
public TreeNode InvertTree(TreeNode root) { if (root == null) { return null; } var left = root.left; var right = root.right; if (left == null && right == null) { return root; } if (left != null) { root.right = InvertTree(left); } else { root.right = null; } if (right != null) { root.left = InvertTree(right); } else { root.left = null; } return root; }