题目链接
Leetcode.965 单值二叉树 Rating : 1178
题目描述
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 true
;否则返回 false
。
示例 1:
输入:[1,1,1,1,1,null,1]
输出:true
示例 2:
输入:[2,2,2,5,2]
输出:false
提示:
- 给定树的节点数范围是 [ 1 , 100 ] [1, 100] [1,100]。
- 每个节点的值都是整数,范围为 [ 0 , 99 ] [0, 99] [0,99] 。
解法:递归
- 如果
r
o
o
t
.
l
e
f
t
≠
n
u
l
l
p
t
r
root.left \neq nullptr
root.left=nullptr,就判断
r
o
o
t
.
v
a
l
=
=
r
o
o
t
.
l
e
f
t
.
v
a
l
root.val = = root.left.val
root.val==root.left.val,如果不相等就返回
false
。 - 如果
r
o
o
t
.
r
i
g
h
t
≠
n
u
l
l
p
t
r
root.right\neq nullptr
root.right=nullptr,就判断
r
o
o
t
.
v
a
l
=
=
r
o
o
t
.
r
i
g
h
t
.
v
a
l
root.val = = root.right.val
root.val==root.right.val,如果不相等就返回
false
。
时间复杂度: O ( n ) O(n) O(n)
C++代码:文章来源:https://www.toymoban.com/news/detail-412700.html
class Solution {
public:
bool isUnivalTree(TreeNode* root) {
if(root == nullptr) return true;
if(root->left != nullptr && root->val != root->left->val) return false;
if(root->right != nullptr && root->val != root->right->val) return false;
return isUnivalTree(root->left) && isUnivalTree(root->right);
}
};
Python代码:文章来源地址https://www.toymoban.com/news/detail-412700.html
class Solution:
def isUnivalTree(self, root: Optional[TreeNode]) -> bool:
if root == None:
return True
if root.left != None and root.left.val != root.val:
return False
if root.right != None and root.right.val != root.val:
return False
return self.isUnivalTree(root.left) and self.isUnivalTree(root.right)
到了这里,关于Leetcode.965 单值二叉树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!