[leetcode] problem 965 – univalued binary tree

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

No.1

kb8uO1.png

Input: [1,1,1,1,1,null,1]

Output: true

No.2

kb88YD.png

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].

Code

1
2
3
4
5
6
public class  {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
1
2
3
4
5
6
7
8
9
10
11
public boolean isUnivalTree(TreeNode root) {
if (root == null)
return true;

if (root.left != null && root.val != root.left.val)
return false;
if (root.right != null && root.val != root.right.val)
return false;

return isUnivalTree(root.left) && isUnivalTree(root.right);
}