Я могу думать о сценарии, где требуется пустой оператор (не для условия if
, а для цикла while
).
Когда программа просто хочет получить явное подтверждение от пользователя для продолжения. Это может потребоваться, когда работа после подтверждения пользователя зависит от некоторых других вещей, и пользователь хочет взять под контроль, когда продолжить.
System.out.println("Enter Y to proceed. Waiting...");
System.out.println("");
while(!(new Scanner(System.in).next().equalsIgnoreCase("Y")));
System.out.println("Proceeding...");
// do the work here
A
/ \
B C
/ \ / \
D E F G
Здесь N = общее число. узлов в дереве = 7
(длина пути листового узла берется как ноль.)
Acc. к рекурсивному определению:
Path length of tree = Path length with Root A
= Path length with Root B + Path length with Root C + (7-1)
= (Path length with Root D + Path length with Root E + (3-1))
+ (Path length with Root F + Path length with Root G + (3-1))
+ (7-1)
= ((0 + 0 + 2) + (0 + 0 + 2)) + 6
= 10
Его реализация может быть следующей:
int Recurse(Node root, int totalNodes)
{
if (totalNodes == 1)
return 0;
int noOfNodes1 = CountNodes(root.left);
int noOfNodes2 = CountNodes(root.right);
return ( Recurse(root.left, noOfNodes1)
+ Recurse(root.right, noOfNodes2) + totalNodes - 1);
}
0
, а не1
. – verdesmarald 21 September 2012 в 12:45