Day103 | 灵神 | 二叉树 计算布尔二叉树的值

2331.计算布尔二叉树的值

2331. 计算布尔二叉树的值 - 力扣(LeetCode)

思路:

本题思路很直接,就是直接写,分情况讨论就好

完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
bool evaluateTree(TreeNode* root) {
if(root==nullptr)
return false;
else if(root->left==nullptr)
return root->val;
else if(root->val==2)
return evaluateTree(root->left)||evaluateTree(root->right);
else
return evaluateTree(root->left)&&evaluateTree(root->right);
}
};
/*
class Solution {
public:
bool evaluateTree(TreeNode* root) {
if(root->left==nullptr)
return root->val;
else if(root->val==2)
return evaluateTree(root->left)||evaluateTree(root->right);
return evaluateTree(root->left)&&evaluateTree(root->right);
}
};

*/

灵神代码:

似乎根本不用判断节点是否为空

1
2
3
4
5
6
7
8
9
func evaluateTree(root *TreeNode) bool {
if root.Left == nil {
return root.Val == 1
}
if root.Val == 2 {
return evaluateTree(root.Left) || evaluateTree(root.Right)
}
return evaluateTree(root.Left) && evaluateTree(root.Right)
}