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