getFullVerticalPath method
Возвращает все вершины от корня до листьев, включая путь до node
.
Implementation
@override
Set<Node> getFullVerticalPath(Node node) {
final result = <Node>{};
// Добавляем путь от корня до node
var current = node;
while (current != root) {
result.add(current);
final parent = getNodeParent(current);
if (parent == null) break;
current = parent;
}
result.add(root);
// Добавляем все узлы поддерева
final queue = Queue<Node>()..add(node);
while (queue.isNotEmpty) {
current = queue.removeFirst();
result.add(current);
queue.addAll(getNodeEdges(current));
}
return result;
}