if we have a tree given below:
1
/ \
2 3
/ \ / \
4 5 6 7
как найти путь между узлами 4-5 или 4-6? Я знаю, как найти путь от корня до заданного узла, но не между двумя случайными узлами.
вы можете взять два пути от корня к двум узлам и удалить общий подпуть.
1
/
2
/
3
/ \
4 7
/ \ / \
5 6 8 9
например, для пути от 5
до 9
в примере вы получили бы два пути 1 2 3 4 5
и 1 2 3 7 9
и нашли бы 3
наименьшим общим родительским узлом. затем отмените путь, начиная с 5
до общего родителя, и добавьте остальные в путь к 9
: 5 4
+ 3
+ 7 9
→ 5 4 3 7 9