34 lines
730 B
Java
34 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⟩");
|
||
|
};
|
||
|
}
|
||
|
}
|