File tree Expand file tree Collapse file tree 1 file changed +21
-2
lines changed Expand file tree Collapse file tree 1 file changed +21
-2
lines changed Original file line number Diff line number Diff line change 1
1
//lint:file-ignore U1000 Ignore all unused code
2
2
package main
3
3
4
- func invertTree (root * TreeNode ) * TreeNode {
4
+ func invertTreeRecursive (root * TreeNode ) * TreeNode {
5
5
if root != nil {
6
- root .Left , root .Right = invertTree (root .Right ), invertTree (root .Left )
6
+ root .Left , root .Right = invertTreeRecursive (root .Right ), invertTreeRecursive (root .Left )
7
+ }
8
+ return root
9
+ }
10
+
11
+ func invertTreeIterative (root * TreeNode ) * TreeNode {
12
+ if root == nil {
13
+ return nil
14
+ }
15
+ stack := []* TreeNode {root }
16
+ for len (stack ) > 0 {
17
+ node := stack [len (stack )- 1 ]
18
+ stack = stack [:len (stack )- 1 ]
19
+ node .Left , node .Right = node .Right , node .Left
20
+ if node .Left != nil {
21
+ stack = append (stack , node .Left )
22
+ }
23
+ if node .Right != nil {
24
+ stack = append (stack , node .Right )
25
+ }
7
26
}
8
27
return root
9
28
}
You can’t perform that action at this time.
0 commit comments