28 lines
411 B
Go
28 lines
411 B
Go
package q1448
|
|
|
|
import "math"
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func gn(node *TreeNode, curMax int) int {
|
|
if node == nil {
|
|
return 0
|
|
}
|
|
self := 0
|
|
if node.Val >= curMax {
|
|
self = 1
|
|
}
|
|
|
|
curMax = max(curMax, node.Val)
|
|
return self + gn(node.Left, curMax) + gn(node.Right, curMax)
|
|
}
|
|
|
|
func goodNodes(root *TreeNode) int {
|
|
return gn(root, math.MinInt)
|
|
}
|
|
|
|
var _ = goodNodes
|