Сложность: easy
Бинарное дерево является одноценным, если каждый узел в дереве имеет одинаковое значение.
Дан корень бинарного дерева, верните true, если данное дерево является одноценным, или false в противном случае.
Пример:
Input: root = [1,1,1,1,1,null,1]
Output: true
👨💻 Алгоритм:
1⃣Выполните обход дерева в глубину (DFS), чтобы собрать все значения узлов в список.
2⃣Проверьте, что все значения в списке одинаковы.
3⃣Если все значения одинаковы, верните true, иначе верните false.
😎 Решение:
class Solution {
List<Integer> vals;
public boolean isUnivalTree(TreeNode root) {
vals = new ArrayList();
dfs(root);
for (int v: vals)
if (v != vals.get(0))
return false;
return true;
}
public void dfs(TreeNode node) {
if (node != null) {
vals.add(node.val);
dfs(node.left);
dfs(node.right);
}
}
}Ставь 👍 и забирай 📚 Базу знаний