Skip to content

Commit 30b7084

Browse files
author
Shuo
authored
Merge pull request #718 from openset/develop
Add: Invert Binary Tree
2 parents 99ebde6 + 75826e1 commit 30b7084

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

Diff for: internal/leetcode/problems_status.go

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ var problemStatus = map[int]bool{
7878
215: true,
7979
217: true,
8080
219: true,
81+
226: true,
8182
231: true,
8283
233: true,
8384
234: true,

Diff for: problems/invert-binary-tree/invert_binary_tree.go

+22
Original file line numberDiff line numberDiff line change
@@ -1 +1,23 @@
11
package problem226
2+
3+
import "github.com/openset/leetcode/internal/kit"
4+
5+
// TreeNode - Definition for a binary tree node.
6+
type TreeNode = kit.TreeNode
7+
8+
/**
9+
* Definition for a binary tree node.
10+
* type TreeNode struct {
11+
* Val int
12+
* Left *TreeNode
13+
* Right *TreeNode
14+
* }
15+
*/
16+
func invertTree(root *TreeNode) *TreeNode {
17+
if root != nil {
18+
root.Left, root.Right = root.Right, root.Left
19+
invertTree(root.Left)
20+
invertTree(root.Right)
21+
}
22+
return root
23+
}
+28
Original file line numberDiff line numberDiff line change
@@ -1 +1,29 @@
11
package problem226
2+
3+
import (
4+
"reflect"
5+
"testing"
6+
7+
"github.com/openset/leetcode/internal/kit"
8+
)
9+
10+
type testType struct {
11+
in []int
12+
want []int
13+
}
14+
15+
func TestInvertTree(t *testing.T) {
16+
tests := [...]testType{
17+
{
18+
in: []int{4, 2, 7, 1, 3, 6, 9},
19+
want: []int{4, 7, 2, 9, 6, 3, 1},
20+
},
21+
}
22+
for _, tt := range tests {
23+
out := invertTree(kit.SliceInt2TreeNode(tt.in))
24+
got := kit.TreeNode2SliceInt(out)
25+
if !reflect.DeepEqual(got, tt.want) {
26+
t.Fatalf("in: %v, got: %v, want: %v", tt.in, got, tt.want)
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)