lc-go/solutions/14/q1448/solution.go

29 lines
517 B
Go

// Package q1448 implements a solution for https://leetcode.com/problems/count-good-nodes-in-binary-tree/
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