Leetcode 965. Univalued Binary Tree
Given a binary tree, determine if it is a univalued binary tree. A binary tree is univalued if every node in the tree has the same value.
true
.null
, return true
because an empty subtree is trivially univalued./**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
public class Solution {
public boolean isUnivalTree(TreeNode root) {
if (root == null) {
return true;
}
return isUnivalTreeHelper(root, root.val);
}
private boolean isUnivalTreeHelper(TreeNode node, int value) {
if (node == null) {
return true;
}
if (node.val != value) {
return false;
}
return isUnivalTreeHelper(node.left, value) && isUnivalTreeHelper(node.right, value);
}
}
This solution efficiently checks every node’s value against the root’s value to determine if the binary tree is univalued.
Got blindsided by a question you didn’t expect?
Spend too much time studying?
Or simply don’t have the time to go over all 3000 questions?