Problem:
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.
Explanation:
判断一棵树中所有结点的值是否相同。
My Thinking:
使用前序遍历,将每个结点依次加入HashSet,由于set中元素不能重复,因此一旦size大于1,返回false。
My Solution:
class Solution {
Set<Integer> valset=new HashSet<>();
public boolean isUnivalTree(TreeNode root) {
if(root==null)
return true;
valset.add(root.val);
if(valset.size()>1)
return false;
return isUnivalTree(root.left) && isUnivalTree(root.right);
}
}
Optimum Thinking:
Optimum Solution: