Я хочу найти седловую точку T, двоичного дерева, если таковой имеется. Седло-точка имеет минимальное значение среди всех своих предков, но она имеет максимальную ценность среди всех ее потомков. Лист может быть такой седловой точкой, если он имеет меньшее значение, чем все его предки.Поиск точки седла в двоичном дереве с использованием рекурсии
Примера дерево:
F:15
E:16 H:17
B:14 G:16 I:8
A:8 C:7
D:5
В является одним из такой седловой точки, потому что 14 меньше, чем 16 и 15, но также больше, чем 8, 7 и 5. А, С, D, и я являюсь другие точки седла.
Я попытался придумать способ рекурсивно проверить каждый из под деревьев и доказать, что родительский узел является максимальным среди всех его потомков. Но поскольку C (16) является максимальным среди всех его потомков, но больше F (15), он не является седловой точкой, поэтому этот метод неверен.
Какой был бы лучший способ решить эту проблему?
A, B, C, Я - седла. – BBbbBB
Да, A, B, C, I, D. Прости. – BBbbBB