Встречается на 2% собеседований по Java
Какие знаешь способы сбалансировать дерево
В Java есть несколько способов сбалансировать дерево:
- AVL-деревья - поддерживают баланс через повороты при добавлении/удалении узлов, гарантируют разницу высот поддеревьев ≤1
java
class AVLNode {
int key, height;
AVLNode left, right;
// методы поворотов: leftRotate(), rightRotate()
}-
Красно-черные деревья - используют цветовую маркировку узлов и правила балансировки (например, корень всегда черный, красные узлы не могут иметь красных детей)
-
B-деревья - оптимизированы для работы с диском, поддерживают множество ключей в узле
-
Splay-деревья - перемещают часто используемые узлы ближе к корню через операцию "splay"
-
TreeMap в Java использует красно-черное дерево под капотом для реализации сбалансированного дерева:
java
TreeMap<Integer, String> balancedTree = new TreeMap<>();Балансировка важна для поддержания O(log n) времени операций поиска, вставки и удаления.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы