题目
题目链接
. - 力扣(LeetCode)
题目描述

代码实现
class Solution {
public:
bool evaluateTree(TreeNode* root) {
if(root->left == nullptr && root->right == nullptr) return root->val;
bool left = evaluateTree(root->left);
bool right = evaluateTree(root->right);
return root->val == 2 ? left | right : left & right;
}
};
思路分析

1、首先我们需要弄懂题意。即叶子节点表示bool值,非叶子节点表示 | 或者 &。将叶子节点中的布尔值和非叶子节点中的运算符进行运算,得到新的布尔值。
2、这道题我大体的思路是用的递归。当遇见叶子节点就直接返回其存储的布尔值。按照这样分别拿到左子树和右子树的布尔值。
3、通过非叶子节点即可运算出新的一个布尔值了。










![【洛谷 P8668】[蓝桥杯 2018 省 B] 螺旋折线 题解(数学+平面几何)](https://img-blog.csdnimg.cn/img_convert/26ec415c652bbb22c17b453f1c72e7c3.png)




![GESP5级T1真题 [202309] 因数分解——O(sqrt(n))的时间复杂度,值得一看](https://img-blog.csdnimg.cn/direct/d8522bdb1079464c9f4ed6de75d273e5.png)


