Evaluate Boolean Binary Tree - Problem
You are given the root of a full binary tree with the following properties:
- Leaf nodes have either the value
0or1, where0represents False and1represents True. - Non-leaf nodes have either the value
2or3, where2represents the boolean OR and3represents the boolean AND.
The evaluation of a node is as follows:
- If the node is a leaf node, the evaluation is the value of the node, i.e.
TrueorFalse. - Otherwise, evaluate the node's two children and apply the boolean operation of its value with the children's evaluations.
Return the boolean result of evaluating the root node.
A full binary tree is a binary tree where each node has either 0 or 2 children.
A leaf node is a node that has zero children.
Input & Output
Example 1 — OR with Mixed Children
$
Input:
root = [2,1,3,null,null,0,1]
›
Output:
true
💡 Note:
Leaf nodes: 1→True, 0→False, 1→True. Right subtree: 0 AND 1 = False. Root: 1 OR False = True
Example 2 — Simple OR Operation
$
Input:
root = [2,0,1]
›
Output:
true
💡 Note:
Root has OR operation with children 0 (False) and 1 (True). False OR True = True
Example 3 — Simple AND Operation
$
Input:
root = [3,1,0]
›
Output:
false
💡 Note:
Root has AND operation with children 1 (True) and 0 (False). True AND False = False
Constraints
-
The number of nodes in the tree is in the range
[1, 1000]. -
0 <= Node.val <= 3 -
Every node has either
0or2children. -
Leaf nodes have a value of
0or1. -
Non-leaf nodes have a value of
2or3.
Visualization
Tap to expand
Understanding the Visualization
1
Input Tree
Binary tree with leaf values 0/1 and operation nodes 2(OR)/3(AND)
2
Evaluate Bottom-Up
Process leaves first, then apply operations
3
Final Result
Root node evaluation gives the boolean answer
Key Takeaway
🎯 Key Insight: Use recursion to naturally handle tree structure - evaluate children first, then apply boolean operations
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code