// 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