SA
Skip to main content

1448 Count Good Nodes in Binary Tree

Solved at: 2022-08-27

Question

Given a binary tree root, a node X in the tree is named good if in the path from the root to X there are no nodes with a value greater than X.

Return the number of good nodes in the binary tree.

Solution

class Solution:
def countGoodNodes(self, node: TreeNode, maxVal: int) -> int:
if not node:
return 0
count = 0
if not maxVal > node.val:
count += 1
if node.val > maxVal:
maxVal = node.val
count = count + self.countGoodNodes(node.left, maxVal) + self.countGoodNodes(node.right, maxVal)
return count

def goodNodes(self, root: TreeNode) -> int:
return self.countGoodNodes(root, root.val)

Results

Runtime

436 ms, faster than 36.72% of Python3 online submissions for Count Good Nodes in Binary Tree.

Memory Usage

32.6 MB, less than 45.65% of Python3 online submissions for Count Good Nodes in Binary Tree.