Рекурсия в Java: почему не отрабатывается return?

192
10 апреля 2018, 06:31

addChild добавляет объект в HashSet, нахождение объекта в коллекции говорит о том, что он является ребенком объекта, вызавшевого метод:

a.addChild (b);
b.addChild (c);

findChild рекурсивно ищет ребенка по полю data:

Собственно, сам вопрос. После 1 иттерации поле метода data совпадает полем data искомого объекта. Почему не отрабатывает return и выполнение идет дальше?

public TreeNode findChild (Object data) {
        Iterator<TreeNode> iterator = getChildrenIterator ();
        TreeNode node;
        while (iterator.hasNext ()) {
            node = iterator.next ();
            if (node.getData ()==data) {
                return node;
            }
            node.findChild (data);
        }
        return null;
    }
}
Answer 1

Проверяйте результат вызовов node.findChild:

TreeNode result = node.findChild(data);
if (result != null)
  return result;
READ ALSO
Использование Фрагментов

Использование Фрагментов

Добрый деньПрочитал про фрагменты,не до конца понял логику их использования

216
Конфликт Kotlin c Butterknife

Конфликт Kotlin c Butterknife

Есть проект написанный полностью на JavaРешил перевести несколько классов в Kotlin

180
Intellij не может найти путь

Intellij не может найти путь

Проект не запускается Выводит как:

196
Реализация HTML 5 в приложение Java

Реализация HTML 5 в приложение Java

Готовлюсь к конкурсу по программированию на JavaВыбрал необычную тему

186