Сложность: easy
Бинарное дерево является одноценным, если каждый узел в дереве имеет одинаковое значение.
Дан корень бинарного дерева, верните true, если данное дерево является одноценным, или false в противном случае.
Пример:
Input: root = [1,1,1,1,1,null,1]
Output: true
👨💻 Алгоритм:
1⃣Выполните обход дерева в глубину (DFS), чтобы собрать все значения узлов в список.
2⃣Проверьте, что все значения в списке одинаковы.
3⃣Если все значения одинаковы, верните true, иначе верните false.
😎 Решение:
class Solution {
private $vals;
function isUnivalTree($root) {
$this->vals = [];
$this->dfs($root);
foreach ($this->vals as $v) {
if ($v != $this->vals[0]) {
return false;
}
}
return true;
}
function dfs($node) {
if ($node != null) {
$this->vals[] = $node->val;
$this->dfs($node->left);
$this->dfs($node->right);
}
}
}Ставь 👍 и забирай 📚 Базу знаний