LeetCode 1448. Count Good Nodes in Binary Tree Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
1448. Count Good Nodes in Binary Tree

Description

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

Return the number of good nodes in the binary tree.

 

Example 1:


Input: root = [3,1,4,3,null,1,5]

Output: 4

Explanation: Nodes in blue are good.

Root Node (3) is always a good node.

Node 4 -> (3,4) is the maximum value in the path starting from the root.

Node 5 -> (3,4,5) is the maximum value in the path

Node 3 -> (3,1,3) is the maximum value in the path.

Example 2:


Input: root = [3,3,null,4,2]

Output: 3

Explanation: Node 2 -> (3, 3, 2) is not good, because "3" is higher than it.

Example 3:


Input: root = [1]

Output: 1

Explanation: Root is considered as good.

 

Constraints:

    <li>The number of nodes in the binary tree is in the range&nbsp;<code>[1, 10^5]</code>.</li>
    
    <li>Each node&#39;s value is between <code>[-10^4, 10^4]</code>.</li>
    

Solutions

Solution 1

PythonJavaC++GoTypeScript
# 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: def dfs(root: TreeNode, mx: int): if root is None: return nonlocal ans if mx <= root.val: ans += 1 mx = root.val dfs(root.left, mx) dfs(root.right, mx) ans = 0 dfs(root, -1000000) return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !