Дерево задано списком nodes: nodes[i] = [value, left, right], где left и right — индексы детей или -1. Корень — узел 0, пустой список — пустое дерево.
Верните True, если для каждого узла все значения в левом поддереве строго меньше его значения, а в правом — строго больше. Иначе False.
В работе: Индекс по id сообщений в виде дерева: если порядок нарушен в одном узле, поиск начнёт пропускать сообщения.
Пример 1
Ввод
nodes = [[8, 1, 2], [3, -1, -1], [10, -1, -1]]
Вывод
True
3 < 8 < 10.
Пример 2
Ввод
nodes = [[8, 1, 2], [3, -1, 3], [10, -1, -1], [9, -1, -1]]
Вывод
False
9 — правый ребёнок 3, но лежит в левом поддереве 8. Проверка только детей этого не увидит.
Ограничения
- 0 ≤ длина
nodes≤ 10⁵ - Глубина дерева может достигать 10⁵
- |value| ≤ 10⁹
- Лимит — 2 с на тест (1500 мс).
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def is_search_tree(nodes):
Источник: VK, фронтенд, репозиторий кандидата на GitHub. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.