2016-12-18 5 views

ответ

0

Если счетчик ребенок должен включать в себя внуков, сделать postorder обход, рекурсивно подсчета размеров ветвления в O (N):

int countChildren(Node node) { 
    int leftCount = node.left == null ? 0 : (countChildren(root.left) + 1); 
    int rightCount = node.right == null ? 0 : (countChildren(root.right) + 1); 

    int totalChildren = leftCount + rightCount; 

    System.out.println(node.name + ":" + totalChildren); 

    return totalChildren; 
} 
+0

Это даст общее количество подсчета корневого узла. Не так ли? –

+0

Это даст общее количество детей, включая внуков любого узла. Для F он вернется 5. Для C он вернется 2. Для E он вернется 1. Для A, B и D он вернет 0. Разве это не то, что вы хотели? Если да, пожалуйста, уточните. –

+0

Мне посчастливилось найти прямой отчет для менеджера. Любой в верхней иерархии - менеджер. Нам нужно печатать, сколько сотрудников управляет каждый менеджер. Ответ должен быть напечатан как: –

Смежные вопросы