Topic:
Invert a binary tree.
4 / 2 7/\ /1 3 6 9
To
4 / 7 2/\ /9 6 3 1
Trivia:
This problem is inspired by this original tweets by Max Howell:
google:90% of our engineers with the software you wrote (Homebrew), but can ' t invert a binary tree on a whiteboard so Fuck off.
Ideas:
Permutation, recursive, left and right sub-tree substitution
Code:
/*** Definition for a binary tree node. * public class TreeNode {* int val; * TreeNode left; * TreeNode RI Ght * TreeNode (int x) {val = x;} }*/ Public classSolution { PublicTreeNode inverttree (TreeNode root) {if(Root = =NULL) returnRoot; Else { if(root.left!=NULL&& root.right!=NULL) {TreeNode temp; Temp=Root.left; Root.left=Root.right; Root.right=temp; Inverttree (Root.left); Inverttree (Root.right); } Else if(Root.left = =NULL&& Root.right! =NULL) {Root.left=Root.right; Root.right=NULL; Inverttree (Root.left); } Else if(Root.left! =NULL&& Root.right = =NULL) {Root.right=Root.left; Root.left=NULL; Inverttree (Root.right); } Else { returnRoot; } } returnRoot; }}
Leetcode 226:invert Binary Tree