K
Kotlin | LeetCode
@easy_kotlin_task1.8K подп.
125просмотров
7.0%от подписчиков
22 марта 2026 г.
statsScore: 138
Задача: 958. Check Completeness of a Binary Tree Сложность: medium Дан корень бинарного дерева, определите, является ли оно полным бинарным деревом. В полном бинарном дереве каждый уровень, за исключением, возможно, последнего, полностью заполнен, и все узлы на последнем уровне расположены как можно левее. На последнем уровне h может быть от 1 до 2^h узлов включительно. Пример: Input: root = [1,2,3,4,5,6] Output: true Explanation: Every level before the last is full (ie. levels with node-values {1} and {2, 3}), and all nodes in the last level ({4, 5, 6}) are as far left as possible. 👨‍💻 Алгоритм: 1⃣Если корень дерева равен null, верните true. 2⃣Инициализируйте переменную nullNodeFound как false для отслеживания того, встречался ли уже null-узел. Создайте очередь и поместите в неё корень дерева. 3⃣Пока очередь не пуста: Извлеките первый элемент из очереди. Если элемент равен null, установите nullNodeFound в true. Если элемент не равен null, проверьте, встречался ли уже null-узел. Если nullNodeFound равен true, верните false. В противном случае добавьте в очередь левого и правого потомков текущего узла. 😎 Решение: class Solution { fun isCompleteTree(root: TreeNode?): Boolean { if (root == null) { return true } val queue: Queue<TreeNode?> = LinkedList() queue.offer(root) var nullNodeFound = false while (queue.isNotEmpty()) { val node = queue.poll() if (node == null) { nullNodeFound = true } else { if (nullNodeFound) { return false } queue.offer(node.left) queue.offer(node.right) } } return true } } Ставь 👍 и забирай 📚 Базу знаний
125
просмотров
1808
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_kotlin_task

Все посты канала →
Задача: 958. Check Completeness of a Binary Tree Сложность: — @easy_kotlin_task | PostSniper