Bottom-Up
public class Solution {
int cnt;
public int countUnivalSubtrees(TreeNode root) {
cnt = 0;
isUnival(root);
return cnt;
}
private boolean isUnival(TreeNode root){
if(root == null) return true;
boolean left = isUnival(root.left);
boolean right =isUnival(root.right);
if(left && right){
if(root.left != null && root.left.val != root.val){
return false;
}
if(root.right != null && root.right.val != root.val){
return false;
}
cnt++;
return true;
}
return false;
}
}Last updated