题目来源:
leetcode题目,网址:2331. 计算布尔二叉树的值 - 力扣(LeetCode)
解题思路:
递归计算结果即可。
解题代码:
/**
* Definition for a binary tree node.
* 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 root) {
switch(root.val){
case 0:
return false;
case 1:
return true;
case 2:
return (evaluateTree(root.left) || evaluateTree(root.right) );
case 3:
return (evaluateTree(root.left) && evaluateTree(root.right) );
default:
return false;
}
}
}
总结:
非叶子节点的值是2时代表逻辑或,值为3时代表的是逻辑与。第一次提交时弄反了,但也通过的将近5成的测试用例。