로고조성현

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.