Итак, как бы вы напечатали все пути в дереве. Здесь условие состоит в том, что мы не только хотим, чтобы пути начинались с корня или путей в поддереве.Печать всех путей в дереве (не только для узлов)
Например:
2
/\
8 10
/\ /
5 6 11
Так что программа должна возвращать:
2-8
2-10
2-8-5
2-8-6
8-5
8-6
2-10-11
10-11
5-8-2-10-11
5-8-2-10
and so on...
Один из подходов состоит в нахождении LCA между каждой отдельной пары узлов, а затем распечатать путь от LCA к обоим узлов (обратное в левом поддереве и в порядке справа поддерева). Но сложность здесь была бы O (n^3). Есть ли более эффективное решение?
- это дерево двоичное? – saadtaame
Предположим, что это двоичное дерево. – Viraj