如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 true
;否则返回 false
。
输入: [1,1,1,1,1,null,1] 输出: true
输入: [2,2,2,5,2] 输出: false
- 给定树的节点数范围是
[1, 100]
。 - 每个节点的值都是整数,范围为
[0, 99]
。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isUnivalTree(self, root: TreeNode) -> bool:
left, right = False, False
if not root.left:
left = True
elif root.val == root.left.val:
left = self.isUnivalTree(root.left)
if not root.right:
right = True
elif root.val == root.right.val:
right = self.isUnivalTree(root.right)
return left and right
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isUnivalTree(self, root: TreeNode) -> bool:
nodes = [root]
i = 0
while i < len(nodes):
if nodes[i].val != root.val:
return False
if nodes[i].left:
nodes.append(nodes[i].left)
if nodes[i].right:
nodes.append(nodes[i].right)
i += 1
return True