Ejemplo n.º 1
0
 // Задание 6: рекурсивный метод возвращает количество листьев в поддереве
 public int AmountOfLeaves()
 {
     // выход из рекурсии. Случай листа(нет потомков)
     if (Left == null && Right == null)
     {
         return(1);
     }
     // случай сучка(есть только левый потомок)
     if (Left != null && Right == null)
     {
         return(Left.AmountOfLeaves());
     }
     // случай сучка(есть только правый потомок)
     if (Left == null && Right != null)
     {
         return(Right.AmountOfLeaves());
     }
     // случай сучка(есть оба потомка)
     if (Left != null && Right != null)
     {
         return(Left.AmountOfLeaves() + Right.AmountOfLeaves());
     }
     // сюда программа дойти не может, поскольку разобраны всевозможные случаи
     return(-1);
 }