Сумма расстояний до всех вершин дерева

Деревья Сложная
Дано дерево из n вершин (0..n-1), n-1 рёбер edges. Для КАЖДОЙ вершины v верните сумму расстояний (в рёбрах) от v до всех остальных вершин дерева. Результат - массив длины n. Наивно считать BFS от каждой вершины отдельно - O(n^2). Эффективный приём (rerooting): посчитайте ответ для одной вершины обычным обходом, а для остальных пересчитайте его через родителя за O(1) при переходе по ребру.
Сигнатура функции
sum_of_distances(n: int, edges: list[list[int]]) -> list[int]
Примеры
ВходОжидаемый результат
[6, [[0, 1], [0, 2], [2, 3], [2, 4], [2, 5]]][8, 12, 6, 10, 10, 10]
[1, []][0]
1решили
1пытались
100%успешность
Войдите, чтобы решить →