Рекурсивный метод, почему он останавливается?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Рекурсивный метод, почему он останавливается?

Сообщение Anonymous »

Я пытаюсь немного узнать о рекурсивных методах и пишу метод для моего двоичного дерева, который подсчитывает сумму всех целых чисел в дереве, мой код работает нормально и все такое, но я все еще немного не понимаю, как приложение узнает, когда остановиться. мой код выглядит так:

Код: Выделить всё

public int sum() {
return sum(overallRoot);
}

private int sum(IntTreeNode root) {
if (root == null) {
return 0;
} else {
return root.data + sum(root.left) + sum(root.right);
}
}
(приведенный выше код взят из моего класса nodeTree)
Следующий код взят из моего основного класса:

Код: Выделить всё

public class TreeClient {

/**
* @param args
*/
public static void main(String[] args) {
IntTree tree = new IntTree(12);
System.out.println(tree.sum());
}
Итак, вопрос (возможно, для многих довольно простой), а как мое приложение узнает, когда остановиться? Я пытался это выяснить с помощью простых выводов системы, но, насколько я понимаю, метод будет вызывать сам себя в бесконечном цикле?
надеюсь, у кого-нибудь будет время ответить!
надеюсь, у кого-то есть время ответить! п>

Подробнее здесь: https://stackoverflow.com/questions/126 ... es-it-stop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»