File tree Expand file tree Collapse file tree 1 file changed +63
-0
lines changed
leetcode/topic/B-Tree/515 Expand file tree Collapse file tree 1 file changed +63
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments