LC 1448 [M] Count Good Nodes in Binary Tree - ALawliet/algorithms GitHub Wiki
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def goodNodes(self, root: TreeNode) -> int:
self.count = 0
def preorder(X, max_so_far):
if not X: return 0
count_X_good = int(X.val >= max_so_far)
max_so_far = max(max_so_far, X.val)
count_L_good = preorder(X.left, max_so_far)
count_R_good = preorder(X.right, max_so_far)
return count_X_good + count_L_good + count_R_good
return preorder(root, root.val)