сьогодні я поглибив своє розуміння бінарних дерев і бінарних дерев пошуку (BST), зосередивши увагу на обході дерев та властивостях BST. Ці алгоритми для дерев є критично важливими для багатьох реальних застосувань.
Я розв’язав п’ять задач з LeetCode, пов’язаних з обходом дерев, обчисленням висоти та перевіркою властивостей дерев. Ці завдання допомогли мені зміцнити знання про те, як проходити через структури дерев і розуміти їх властивості.
Ось задачі, над якими я працював сьогодні:
- Обхід бінарного дерева в порядку (Inorder Traversal)
- Перевірка бінарного дерева пошуку (Validate Binary Search Tree)
- Найближчий спільний предок в бінарному дереві пошуку (Lowest Common Ancestor of a Binary Search Tree)
- Обхід рівнів бінарного дерева (Binary Tree Level Order Traversal)
- Вставка в бінарне дерево пошуку (Insert into a Binary Search Tree)
Розв’язуючи ці задачі, я навчився проходити через дерева різними способами, розуміти структурні властивості BST і як вставляти та видаляти вузли, зберігаючи відсортований порядок у BST. Концепція «найближчого спільного предка» була особливо цікавою та корисною.
Перекладено з: Mastering the Arts of Competitive Programming (Day -33)