304 North Cardinal St.
Dorchester Center, MA 02124

# Evaluate Boolean Binary Tree LeetCode Solution

## Problem – Evaluate Boolean Binary Tree LeetCode Solution

You are given the `root` of a full binary tree with the following properties:

• Leaf nodes have either the value `0` or `1`, where `0` represents `False` and `1` represents `True`.
• Non-leaf nodes have either the value `2` or `3`, where `2` represents the boolean `OR` and `3` represents 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. `True` or `False`.
• 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.

full binary tree is a binary tree where each node has either `0` or `2` children.

leaf node is a node that has zero children.

Example 1:

``````Input: root = [2,1,3,null,null,0,1]
Output: true
Explanation: The above diagram illustrates the evaluation process.
The AND node evaluates to False AND True = False.
The OR node evaluates to True OR False = True.
The root node evaluates to True, so we return true.
``````

Example 2:

``````Input: root = [0]
Output: false
Explanation: The root node is a leaf node and it evaluates to false, so we return false.
``````

Constraints:

• The number of nodes in the tree is in the range `[1, 1000]`.
• `0 <= Node.val <= 3`
• Every node has either `0` or `2` children.
• Leaf nodes have a value of `0` or `1`.
• Non-leaf nodes have a value of `2` or `3`.

### Evaluate Boolean Binary Tree LeetCode Solution in Java

``````public boolean evaluateTree(TreeNode root) {
if(root.val == 0) return false;
if(root.val == 1) return true;
boolean l = evaluateTree(root.left);
boolean r = evaluateTree(root.right);
return root.val==2 ? l|r : l&r;
}
``````

### Evaluate Boolean Binary Tree LeetCode Solution in C++

``````bool evaluateTree(TreeNode* n) {
switch(n->val) {
case 0:
case 1:
return n->val;
case 2:
return evaluateTree(n->left) || evaluateTree(n->right);
default:
return evaluateTree(n->left) && evaluateTree(n->right);
}
}
``````

### Evaluate Boolean Binary Tree LeetCode Solution in Python

``````class Solution:
def evaluateTree(self, root: Optional[TreeNode]) -> bool:
def recur(node):
if not node.left and not node.right: #leaf node
return True if node.val == 1 else False
left = recur(node.left)
right = recur(node.right)
if node.val == 2: #if node is or
return left or right
if node.val == 3: #if node is and
return left and right
return recur(root)
``````
##### Evaluate Boolean Binary Tree LeetCode Solution Review:

In our experience, we suggest you solve this Evaluate Boolean Binary Tree LeetCode Solution and gain some new skills from Professionals completely free and we assure you will be worth it.

If you are stuck anywhere between any coding problem, just visit Queslers to get the Evaluate Boolean Binary Tree LeetCode Solution

Find on LeetCode

##### Conclusion:

I hope this Evaluate Boolean Binary Tree LeetCode Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.

This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.

Keep Learning!

More Coding Solutions >>

LeetCode Solutions

Hacker Rank Solutions

CodeChef Solutions