root двоичного дерева.
Поддерево — это вершина вместе со *всеми* её потомками; обрезать ветки нельзя. Поддерево называется деревом поиска, если у каждой его вершины все значения в левой ветке строго меньше её значения, а в правой — строго больше.
Верните число вершин в самом большом поддереве, которое является деревом поиска. Для пустого дерева ответ 0.
Попробуйте уложиться в O(n).root=tree_node([12, 6, 20, 2, 9, 15, 11]) → 3
Целиком дерево не подходит: 11 стоит справа от 12. Ветка с корнем 6 (вершины 2, 6, 9) — дерево поиска из 3 вершин; у ветки 20 правый ребёнок 11 меньше 20.
root=tree_node([5, 5]) → 1
Равные значения правило нарушают, поэтому подходит только лист 5 — одна вершина.
root=tree_node([]) → 0
Дерево пустое, ответ 0.
root=tree_node([12, 6, 20, 2, 9, 15, 11])
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 123 теста на сервере, включая скрытые.