1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-09-16 16:36:56 +02:00
LeetCode/java/evaluate-boolean-binary-tree.java
Matej Focko a282ec40a7
java: add «2331. Evaluate Boolean Binary Tree»
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-05-16 17:37:28 +02:00

33 lines
730 B
Java

public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
class Solution {
public boolean evaluateTree(TreeNode node) {
if (node == null) {
throw new NullPointerException("node cannot be null");
}
return switch (node.val) {
case 0 -> false;
case 1 -> true;
case 2 -> evaluateTree(node.left) || evaluateTree(node.right);
case 3 -> evaluateTree(node.left) && evaluateTree(node.right);
default -> throw new IllegalStateException("value must be in range ⟨0;3⟩");
};
}
}