Skip to content

Commit 24a864f

Browse files
committed
add sol
1 parent 2d51fad commit 24a864f

File tree

1 file changed

+63
-0
lines changed
  • leetcode/topic/B-Tree/515

1 file changed

+63
-0
lines changed

leetcode/topic/B-Tree/515/sol.go

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// https://leetcode.com/problems/find-largest-value-in-each-tree-row/
2+
package main
3+
4+
import (
5+
"fmt"
6+
"math"
7+
)
8+
9+
// TreeNode definition
10+
type TreeNode struct {
11+
Val int
12+
Left *TreeNode
13+
Right *TreeNode
14+
}
15+
16+
func largestValues(root *TreeNode) []int {
17+
if root == nil {
18+
return []int{}
19+
}
20+
21+
res := []int{}
22+
queue := []*TreeNode{root}
23+
24+
for len(queue) > 0 {
25+
levelSize := len(queue)
26+
maxVal := math.MinInt32
27+
28+
for i := 0; i < levelSize; i++ {
29+
node := queue[0]
30+
queue = queue[1:]
31+
32+
if node.Val > maxVal {
33+
maxVal = node.Val
34+
}
35+
36+
if node.Left != nil {
37+
queue = append(queue, node.Left)
38+
}
39+
if node.Right != nil {
40+
queue = append(queue, node.Right)
41+
}
42+
}
43+
res = append(res, maxVal)
44+
}
45+
46+
return res
47+
}
48+
49+
func main() {
50+
root := &TreeNode{
51+
Val: 1,
52+
Left: &TreeNode{
53+
Val: 3,
54+
Left: &TreeNode{Val: 5},
55+
Right: &TreeNode{Val: 3},
56+
},
57+
Right: &TreeNode{
58+
Val: 2,
59+
Right: &TreeNode{Val: 9},
60+
},
61+
}
62+
fmt.Println(largestValues(root))
63+
}

0 commit comments

Comments
 (0)