Я реализовал бинарное дерево поиска на Java, которое может искать определенный узел. После того, как я найду определенный узел, я также хотел бы получить определенное количество узлов (скажем, 5), которые упорядочены до того, как узел был найден. Единственный способ, который я могу придумать, чтобы добиться этого: пройтись по всему дереву, добавить каждый узел в список массивов (или другую плоскую структуру данных), а затем найти узел в списке массивов и получить пять предыдущих узлов.
Но это неэффективно и неэлегантно. Есть ли способ сделать это, просто пройдя по дереву назад?