LeetCode 965. Univalued Binary Tree

请看题

Example

思路

还是熟悉的二叉树结构,我们还是可以继续用递归来解决

这道题就是来判断当前树是否都是同样的值
对于判断是否相等我们可以传入一个初始值,这个初始值为一个不变的值,如果在比较中有一处不同,那么这个树的答案为false,反之true

直接上代码了

Code

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
27
28
29
30
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:

bool isUni(TreeNode *root, int val)
{
if(!root){return true;}

if(root->val != val)
{
return false;
}
return isUni(root->left, val) && isUni(root->right, val);
}

bool isUnivalTree(TreeNode* root)
{
return isUni(root, root->val);
}
};

代码解析

这一道题非常简单,只需要传入一个val值然后根据这个val值来判断是否和当前节点相同。

val值是固定的,不会改变。如果有一个为不相等的话,那么返回false,另外 and 条件也就不成立,返回false,一路false到最后答案就是false。如果一直相等,一路true最后也肯定还是true。


结束


LeetCode 965. Univalued Binary Tree
http://example.com/2024/05/12/LeetCode 965. Univalued Binary Tree/
作者
OneWhiteThree
发布于
2024年5月12日
许可协议