Обернений обхід дерева
Дуже проста
Обмеження на час виконання 1 секунда
Обмеження на використання пам'яті 122,174 мегабайта
Задано масив цілих чисел. Створіть з них Бінарне Дерево Пошуку. Якщо число, що вставляється в дерево, рівне поточній вершині, його варто вставляти в праве піддерево.
Реалізуйте метод PostOrder
оберненого обходу дерева. При оберненому обході спочату відвідується ліве піддерево, потім праве піддерево, потім корінь.
Напишіть код згідно наступного інтерфейсу:
// C++ class TreeNode { public: int val; TreeNode *left, *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Tree { public: TreeNode *head; Tree() : head(NULL) {}; void Insert(int val); // Вставка числа val в Бінарне Дерево Пошуку void PostOrder(void); // Вивести вершини дерева в порядку оберненого обходу };
# Python class TreeNode: def __init__(self, x: int): self.val = x self.left = None self.right = None class Tree: def __init__(self): self.head = None def Insert(self, val: int) -> None: """Вставка числа val в Бінарне Дерево Пошуку""" pass def PostOrder(self) -> None: """ Вивести вершини дерева в порядку оберненого обходу""" pass
Ви можете створювати (використовувати) за необхідності додаткові методи.
Вхідні дані
Перший рядок містить число n (1 ≤ n ≤ 100). Другий рядок містить n цілих чисел.
Вихідні дані
Створіть Бінарне Дерево Пошуку з вхідних даних. Виведіть вершини дерева в порядку оберненого обходу.
Приклади
Вхідні дані #1
Відповідь #1
Відправки 1K
Коефіцієнт прийняття 33%