Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Наименьший общий предок между двумя узлами двоичного дерева (рекурсивный подход)

Автор: Back To Back SWE

Загружено: 2019-04-02

Просмотров: 86612

Описание:

Бесплатный 5-дневный мини-курс: https://backtobackswe.com
Попробуйте нашу полную платформу: https://backtobackswe.com/pricing
📹 Интуитивно понятные видеообъяснения
🏃 Запускайте код по мере обучения
💾 Сохраняйте прогресс
❓Новые, ранее не рассматривавшиеся вопросы
🔎 Получить все решения

Вопрос: Имея корень двоичного дерева и две ссылки на узлы, находящиеся в этом дереве, найдите наименьшего общего предка этих двух узлов. У узлов нет родительских указателей.

Подход

Итак, существует множество вариантов этой задачи, где можно построить хеш-таблицу, создать родительские указатели и т. д. Мы сосредоточимся на рекурсивном решении.

Алгоритм

Суть в том, что мы хотим получить корень в узле, а затем искать слева и справа любой из двух заданных узлов.

Если мы видим какой-либо узел, мы его возвращаем. Если же узел не найден при поиске по поддереву, будет возвращено значение null, и оно будет поднято наверх.

После того, как мы выполним поиск слева и справа, мы спрашиваем себя, что означают наши результаты.

Если мы ничего не нашли слева, мы просто поднимаем то, что находится справа (каким бы ни был результат поиска). Этот узел, на котором мы находимся, не может быть LCA, поскольку ни слева, ни справа не дали нам нужных двух узлов.

Если мы ничего не нашли справа, мы просто поднимаем то, что находится слева (каким бы ни был результат поиска). Этот узел, на котором мы находимся, не может быть LCA, поскольку ни слева, ни справа не дали нам нужных двух узлов.

Если и справа, и слева результаты не равны нулю, мы нашли наш LCA.

Почему?

Мы знаем, что это, по крайней мере, предок, но мы точно знаем, что это низший общий предок, потому что мы пошли снизу вверх, и всё, что мы встретим, будет LCA, и оно поднимется наверх.

Сложности

Время: O(n)

В процессе поиска мы будем использовать всё дерево. В дереве n узлов, и в каждом узле мы выполняем O(1) операций. Хотя вызовов не ровно n, мне нужно это перепроверить... Мне нужно решить рекуррентное соотношение, ну да ладно... мы знаем, что оно останется линейным в асимптотике.

Пространство: O(h)

Использование стека в максимуме будет равно высоте дерева. В худшем случае O(n), если наше дерево скошено исключительно влево или вправо, и нам нужно найти глубокие узлы. Но в этом случае n равно h. Но мы говорим O(n) в этом случае, поскольку это более точно отражает происходящее: размер дерева в узлах доминирует над высотой.

++++++++++++++++++++++++++++++++++++++++++++++++++++

HackerRank:    / @hackerrankofficial  

Тушар Рой:    / tusharroy2525  

GeeksForGeeks:    / @geeksforgeeksvideos  

Джарвис Джонсон:    / vsympathyv  

Успех в технологиях:    / @successintech  

Наименьший общий предок между двумя узлами двоичного дерева (рекурсивный подход)

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

All Nodes Distance K In A Binary Tree - Performing Bidirectional Search On A Tree Using A Hashtable

All Nodes Distance K In A Binary Tree - Performing Bidirectional Search On A Tree Using A Hashtable

НАИМЕНЬШИЙ ОБЩИЙ ПРЕДОК ДВОИЧНОГО ДЕРЕВА III [PYTHON]

НАИМЕНЬШИЙ ОБЩИЙ ПРЕДОК ДВОИЧНОГО ДЕРЕВА III [PYTHON]

НАИМЕНЬШИЙ ОБЩИЙ ПРЕДОК ДВОИЧНОГО ДЕРЕВА I | PYTHON | LEETCODE 236

НАИМЕНЬШИЙ ОБЩИЙ ПРЕДОК ДВОИЧНОГО ДЕРЕВА I | PYTHON | LEETCODE 236

The N Queens Problem using Backtracking/Recursion - Explained

The N Queens Problem using Backtracking/Recursion - Explained

The Backtracking Blueprint: The Legendary 3 Keys To Backtracking Algorithms

The Backtracking Blueprint: The Legendary 3 Keys To Backtracking Algorithms

Психология Людей, Которые Не Публикуют Ничего в Социальных Сетях

Психология Людей, Которые Не Публикуют Ничего в Социальных Сетях

Lowest Common Ancestor Binary Tree

Lowest Common Ancestor Binary Tree

США повторяют фатальную ошибку Британской империи

США повторяют фатальную ошибку Британской империи

Lowest Common Ancestor of a binary tree | Leetcode #236

Lowest Common Ancestor of a binary tree | Leetcode #236

Простейший трюк обхода двоичного дерева для прямого порядка, прямого порядка и обратного порядка

Простейший трюк обхода двоичного дерева для прямого порядка, прямого порядка и обратного порядка

Serialize & Deserialize A Binary Tree - Crafting Recursive Solutions To Interview Problems

Serialize & Deserialize A Binary Tree - Crafting Recursive Solutions To Interview Problems

Клонирование связанного списка (со случайными указателями) — решение с линейным пространством и с...

Клонирование связанного списка (со случайными указателями) — решение с линейным пространством и с...

6. Binary Trees, Part 1

6. Binary Trees, Part 1

Binary Lifting (Kth Ancestor of a Tree Node)

Binary Lifting (Kth Ancestor of a Tree Node)

How To Reverse A Singly Linked List | The Ultimate Explanation (Iteratively & Recursively)

How To Reverse A Singly Linked List | The Ultimate Explanation (Iteratively & Recursively)

AVL Trees & Rotations (Self-Balancing Binary Search Trees)

AVL Trees & Rotations (Self-Balancing Binary Search Trees)

Роддом — самое страшное место для женщин? | Варламов — о трагедии в Новокузнецке и деле врачей

Роддом — самое страшное место для женщин? | Варламов — о трагедии в Новокузнецке и деле врачей

Vertical order traversal of a binary tree | Leetcode #987

Vertical order traversal of a binary tree | Leetcode #987

НАИМЕНЬШИЙ ОБЩИЙ ПРЕДОК ДВОИЧНОГО ДЕРЕВА II | PYTHON | LEETCODE 1644

НАИМЕНЬШИЙ ОБЩИЙ ПРЕДОК ДВОИЧНОГО ДЕРЕВА II | PYTHON | LEETCODE 1644

Я в опасности

Я в опасности

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com