难度: Easy
原题连接
内容描述
A binary tree is univalued if every node in the tree has the same value.
Return true if and only if the given tree is univalued.
Example 1:
Input: [1,1,1,1,1,null,1]
Output: true
Example 2:
Input: [2,2,2,5,2]
Output: false
Note:
The number of nodes in the given tree will be in the range [1, 100].
Each node's value will be an integer in the range [0, 99].
思路 1 - 时间复杂度: O(N)- 空间复杂度: O(N)******
递归,sb题没什么好说的
class Solution:
def isUnivalTree(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if not root:
return True
self.nodes = set()
def helper(root):
self.nodes.add(root.val)
if root.left:
helper(root.left)
if root.right:
helper(root.right)
helper(root)
return len(self.nodes) == 1