Quetion
Invert a binary tree.
4 / 2 7/\ /1 3 6 9
To
4 / 7 2/\ /9 6 3 1
Solution 1--recursion
Easy to think.
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 */Ten Public classSolution { One PublicTreeNode inverttree (TreeNode root) { A if(Root = =NULL) - returnRoot; -TreeNode Leftnode =NULL, Rightnode =NULL; the if(Root.left! =NULL) -Leftnode =Inverttree (root.left); - if(Root.right! =NULL) -Rightnode =Inverttree (root.right); +Root.left =Rightnode; -Root.right =Leftnode; + returnRoot; A } at}
Solution 2--Iteration
BFS
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 */Ten Public classSolution { One PublicTreeNode inverttree (TreeNode root) { A if(Root = =NULL) - returnRoot; -List<treenode> current =NewArraylist<treenode>(); theList<treenode>Next; - Current.add (root); - while(Current.size () > 0) { -Next =NewArraylist<treenode>(); + for(TreeNode tmpnode:current) { - //Inverse Tmpnode +TreeNode left =Tmpnode.left; ATreeNode right =Tmpnode.right; atTmpnode.right =Left ; -Tmpnode.left =Right ; - if(Right! =NULL) - Next.add (right); - if(Left! =NULL) - Next.add (left); in } -Current =Next; to } + returnRoot; - } the}
Invert Binary Tree Solution