File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed
Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ // class TreeNode {
2+ // val: number;
3+ // left: TreeNode | null;
4+ // right: TreeNode | null;
5+ // constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
6+ // this.val = val === undefined ? 0 : val;
7+ // this.left = left === undefined ? null : left;
8+ // this.right = right === undefined ? null : right;
9+ // }
10+ // }
11+
12+ /**
13+ * https://leetcode.com/problems/invert-binary-tree
14+ * T.C. O(n)
15+ * S.C. O(n)
16+ */
17+ function invertTree ( root : TreeNode | null ) : TreeNode | null {
18+ if ( root === null ) {
19+ return null ;
20+ }
21+
22+ [ root . left , root . right ] = [ root . right , root . left ] ;
23+ invertTree ( root . left ) ;
24+ invertTree ( root . right ) ;
25+
26+ return root ;
27+ }
28+
29+ /**
30+ * T.C. O(n)
31+ * S.C. O(n)
32+ */
33+ function invertTree ( root : TreeNode | null ) : TreeNode | null {
34+ const stack : Array < TreeNode | null > = [ root ] ;
35+
36+ while ( stack . length > 0 ) {
37+ const node = stack . pop ( ) ! ;
38+
39+ if ( node === null ) {
40+ continue ;
41+ }
42+
43+ [ node . left , node . right ] = [ node . right , node . left ] ;
44+ stack . push ( node . left , node . right ) ;
45+ }
46+
47+ return root ;
48+ }
You can’t perform that action at this time.
0 commit comments