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