1、DFS-递归
我们可以使用递归的方式进行深度遍历,我们使用 e v a l u a t e T r e e evaluateTree evaluateTree返回每个节点对应的值用于上一层的计算。由于题目中规定了叶子节点和非叶子节点的取值,因此我们只需要对应进行讨论即可。
class Solution {
public:
bool evaluateTree(TreeNode *root) {
if (root->val == 0 || root->val == 1) return root->val;
else {
if (root->val == 2) return evaluateTree(root->left) || evaluateTree(root->right);
else return evaluateTree(root->left) && evaluateTree(root->right);
}
}
};