File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed
Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 11package easy ;
22
3+ import java .util .LinkedList ;
4+ import java .util .Queue ;
5+
36public class InvertBinaryTree226 {
47
58 private class TreeNode {
@@ -36,4 +39,46 @@ public TreeNode invertTree(TreeNode root) {
3639
3740 return root ;
3841 }
42+
43+ public TreeNode invertTree2 (TreeNode root ) {
44+ if (root == null )
45+ return null ;
46+
47+ // swap left & right subtree
48+ TreeNode tempnode = root .left ;
49+ root .left = root .right ;
50+ root .right = tempnode ;
51+
52+ // recursively solve for children
53+ invertTree (root .left );
54+ invertTree (root .right );
55+
56+ return root ;
57+ }
58+
59+ public TreeNode invertTreeIterative (TreeNode root ) {
60+ if (root == null )
61+ return null ;
62+
63+ // bfs approach
64+ Queue <TreeNode > queue = new LinkedList <TreeNode >();
65+
66+ queue .add (root );
67+
68+ while (!queue .isEmpty ()) {
69+ // remove from queue and swap children
70+ TreeNode currentNode = queue .poll ();
71+ // swap
72+ TreeNode temp = currentNode .left ;
73+ currentNode .left = currentNode .right ;
74+ currentNode .right = temp ;
75+
76+ if (currentNode .left != null )
77+ queue .add (currentNode .left );
78+ if (currentNode .right != null )
79+ queue .add (currentNode .right );
80+ }
81+
82+ return root ;
83+ }
3984}
You can’t perform that action at this time.
0 commit comments