Skip to content

Commit c2619ce

Browse files
committed
DeepestLeavesSum
1 parent 74ce9f9 commit c2619ce

File tree

7 files changed

+63
-3
lines changed

7 files changed

+63
-3
lines changed

deepest-leaves-sum/export.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package index
2+
3+
func DeepestLeavesSum(root *TreeNode) int {
4+
return deepestLeavesSum(root)
5+
}

deepest-leaves-sum/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module github.com/masx200/leetcode-test/deepest-leaves-sum
2+
3+
go 1.19
4+
5+
require github.com/masx200/leetcode-test/serialize-and-deserialize-binary-tree v0.0.0-20220817020324-66611ff0c589
6+
7+
replace github.com/masx200/leetcode-test/serialize-and-deserialize-binary-tree v0.0.0-20220817020324-66611ff0c589 => ../serialize-and-deserialize-binary-tree

deepest-leaves-sum/go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
2+
gotest.tools/v3 v3.3.0 h1:MfDY1b1/0xN1CyMlQDac0ziEy9zJQd9CXBRRDHw2jJo=

deepest-leaves-sum/index.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package index
2+
3+
import serialize_and_deserialize_binary_tree "github.com/masx200/leetcode-test/serialize-and-deserialize-binary-tree"
4+
5+
type TreeNode = serialize_and_deserialize_binary_tree.TreeNode
6+
7+
func deepestLeavesSum(root *TreeNode) (sum int) {
8+
q := []*TreeNode{root}
9+
for len(q) > 0 {
10+
sum = 0
11+
12+
temp := []*TreeNode{}
13+
for _, node := range q {
14+
15+
sum += node.Val
16+
if node.Left != nil {
17+
temp = append(temp, node.Left)
18+
}
19+
if node.Right != nil {
20+
temp = append(temp, node.Right)
21+
}
22+
}
23+
q = temp
24+
}
25+
return
26+
}

utils/TreeNodeLeetCodeParse.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
package utils
22

33
import treenode "github.com/egregors/TreeNode"
4+
import serialize_and_deserialize_binary_tree "github.com/masx200/leetcode-test/serialize-and-deserialize-binary-tree"
5+
6+
type TreeNode = serialize_and_deserialize_binary_tree.TreeNode
47

58
func TreeNodeLeetCodeParse(s string) *TreeNode {
69
var t, e = treenode.NewTreeNode(s)
710
if e != nil {
811
panic(e)
912
}
10-
return t
13+
return treeNodeNew(t)
1114
}
1215

13-
type TreeNode = treenode.TreeNode
16+
func treeNodeNew(t *treenode.TreeNode) *TreeNode {
17+
18+
if t == nil {
19+
return nil
20+
}
21+
return &TreeNode{Val: t.Val, Left: treeNodeNew(t.Left), Right: treeNodeNew(t.Right)}
22+
}

utils/TreeNodeLeetCodeStringify.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
package utils
22

3+
import treenode "github.com/egregors/TreeNode"
4+
35
func TreeNodeLeetCodeStringify(t *TreeNode) string {
46

5-
return t.String()
7+
return treeNodeCreate(t).String()
8+
}
9+
func treeNodeCreate(t *TreeNode) *treenode.TreeNode {
10+
if t == nil {
11+
return nil
12+
}
13+
return &treenode.TreeNode{Val: t.Val, Left: treeNodeCreate(t.Left), Right: treeNodeCreate(t.Right)}
614
}

utils/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@ module github.com/masx200/leetcode-test/utils
33
go 1.19
44

55
require github.com/egregors/TreeNode v1.0.3
6+
require github.com/masx200/leetcode-test/serialize-and-deserialize-binary-tree v0.0.0-20220817020324-66611ff0c589
7+
8+
replace github.com/masx200/leetcode-test/serialize-and-deserialize-binary-tree v0.0.0-20220817020324-66611ff0c589 => ../serialize-and-deserialize-binary-tree

0 commit comments

Comments
 (0)