Я наткнулся на этот вопрос. Ниже мой подход:Самый низкий общий предок для данной пары узлов
Lets say the two nodes are node1 and node2
For any node (lets say node1), find the path from Root to
node1 and store it in an HashMap
For the other node node2, find the path from root to node2, and while traversing back,
check if any of the nodes are present in the hashmap or not
Return the first found node
Время Сложность O (п) и Space Сложность также O (h), где п высота дерева
Я просто хотел бы знать, насколько хорошо этот подход. Или существует ли другое лучшее решение.
EDIT: Данное дерево представляет собой двоичное дерево, а не BST. Таким образом, время поиска узла линейно зависит от размера узлов.
Мой плохо. Данное дерево является двоичным деревом. Я изменил свой пост. благодаря –