Здесь я дал код для печати реверса связанного списка.
fun1() печатает данный связанный список в обратном порядке. Для связанного списка 1->2->3->4->5 функция fun1() выводит 5->4->3->2->1.
void fun1(struct node* head)
{
if(head == NULL)
return;
fun1(head->next);
printf("%d ", head->data);
}
Может ли кто-нибудь объяснить, как создаются кадры стека при каждом вызове fun1()? Я ожидал, что последний узел связанного списка будет напечатан. Но я получаю связанный список в обратном порядке. Это не делает связанный список обратным. Это просто печать в обратном порядке. Я думаю, это связано с такими операциями со стеком, как Push/Pop. Но я точно не знаю. Пожалуйста, помогите мне понять с помощью пошаговых операций на диаграммах.