Итак, я читал о связанных списках и рекурсии. Я просто хотел знать, почему я не могу использовать рекурсию в методе, который является статическим? Кроме того, мне было интересно в Java в рекурсии связанных списков, почему вы можете использовать static void при печати или поиске узлов. Спасибо.Связанный список Recursion
ответ
При использовании рекурсии можно использовать статический метод. Вам просто нужно передать всю информацию, необходимую для работы внутри функции. С привязанными списками рекурсия настоятельно рекомендуется из-за того, как они разработаны (каждый узел содержит ссылку на следующий узел и (иногда) его предыдущий).
В зависимости от способности компилятора JIT выполнять оптимизацию хвостовой рекурсии, рекурсивная обработка длинного связанного списка может привести к переполнению стека. –
Вы можете использовать рекурсию в функции, которая является static void. Он просто должен вернуть свою ценность или делать то, что он должен делать с помощью побочных эффектов, что часто считается вредным. Но для печати это имеет смысл.
static void printList(node)
{
if (node != null)
{
print(node);
printList(node.next);
}
}
Какой конкретный язык программирования? – Derek
Он выглядит как вопрос Java или C#, учитывая контекст и возвращаемое значение. (C++ очень маловероятен с учетом контекста) – monksy
Да! вы правы своей Java. – Cruiser