Count Good Nodes In Binary Tree
Learn how to solve the 'Count Good Nodes In Binary Tree' problem. This detailed resource details brute force and optimized approaches.
Problem Statement
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.
The tree is represented as a level-order list. Implement a function goodNodes(root: list) -> int.
- •The number of nodes in the binary tree is in the range [1, 100000]
- •-10000 <= Node.val <= 10000
Examples
[3,1,4,3,None,1,5]
4
Root 3 is always good. Node 4 (3<=4, good). Node 3 under node 1 (3<=3, good). Node 5 (3<=4<=5, good). Node 1 is not good (3>1). Node 1 under 4 is not good (4>1). Total: 4 good nodes.
[3,3,None,4,2]
3
Root 3 is good. Node 3 (left child, 3<=3, good). Node 4 (3<=3<=4, good). Node 2 is not good (3>2). Total: 3.
[1]
1
The root is always a good node.
Need a Hint?
Edge Cases to Watch
- Empty list or null input variables
- Single item lists/arrays
- Extremely large input bounds causing integer or stack overflow
Ready to Solve?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.