Рекурсивный метод, почему он останавливается?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

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