File tree Expand file tree Collapse file tree 2 files changed +52
-0
lines changed
serialize-and-deserialize-binary-tree Expand file tree Collapse file tree 2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change 1
1
package index
2
2
3
+ type TreeNodeInterFace interface {
4
+ GetVal () int
5
+ SetVal (int )
6
+ GetLeft () TreeNodeInterFace
7
+ SetLeft (TreeNodeInterFace )
8
+ GetRight () TreeNodeInterFace
9
+ SetRight (TreeNodeInterFace )
10
+ }
11
+
3
12
type TreeNode struct {
4
13
Val int
5
14
Left * TreeNode
6
15
Right * TreeNode
7
16
}
17
+
18
+ func (t * TreeNode ) GetVal () int {
19
+ return t .Val
20
+ }
21
+ func (t * TreeNode ) SetVal (val int ) {
22
+
23
+ t .Val = val
24
+ }
25
+ func (t * TreeNode ) GetLeft () TreeNodeInterFace {
26
+
27
+ return t .Left
28
+ }
29
+ func (t * TreeNode ) SetLeft (n TreeNodeInterFace ) {
30
+ if n == nil {
31
+ t .Left = nil
32
+ return
33
+ }
34
+ new := TreeNodeInterFaceToStruct (n )
35
+ t .Left = new
36
+ }
37
+ func (t * TreeNode ) GetRight () TreeNodeInterFace {
38
+ return t .Right
39
+ }
40
+ func (t * TreeNode ) SetRight (n TreeNodeInterFace ) {
41
+
42
+ if n == nil {
43
+ t .Right = nil
44
+ return
45
+ }
46
+ new := TreeNodeInterFaceToStruct (n )
47
+ t .Right = new
48
+ }
49
+
50
+ func TreeNodeInterFaceToStruct (n TreeNodeInterFace ) * TreeNode {
51
+ new := & TreeNode {Val : n .GetVal ()}
52
+
53
+ new .SetLeft (n .GetLeft ())
54
+
55
+ new .SetRight (n .GetRight ())
56
+ return new
57
+ }
Original file line number Diff line number Diff line change 5
5
require gotest.tools/v3 v3.4.0
6
6
7
7
require github.com/google/go-cmp v0.5.9 // indirect
8
+
9
+
You can’t perform that action at this time.
0 commit comments