Skip to content

Commit c2f396d

Browse files
committed
TreeNodeInterFace
1 parent a27e807 commit c2f396d

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,57 @@
11
package index
22

3+
type TreeNodeInterFace interface {
4+
GetVal() int
5+
SetVal(int)
6+
GetLeft() TreeNodeInterFace
7+
SetLeft(TreeNodeInterFace)
8+
GetRight() TreeNodeInterFace
9+
SetRight(TreeNodeInterFace)
10+
}
11+
312
type TreeNode struct {
413
Val int
514
Left *TreeNode
615
Right *TreeNode
716
}
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+
}

serialize-and-deserialize-binary-tree/go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ go 1.18
55
require gotest.tools/v3 v3.4.0
66

77
require github.com/google/go-cmp v0.5.9 // indirect
8+
9+

0 commit comments

Comments
 (0)