在reurrsive呼叫中头变为0后会发生什么?

时间:2017-06-14 18:26:24

标签: c pointers linked-list

void fun1(struct Node* head)
{
 if(head == NULL)
    return;

 fun1(head->next);
  printf("%d  ", head->data);
}

在head-> next变为0之后,如何向后打印,请说明流程?

2 个答案:

答案 0 :(得分:2)

你必须通过调用堆栈来考虑它们的操作方式。

该函数在打印任何内容之前都会点击fun1调用,因此它会在打印前一直显示到基本案例。然后它打印出来,因为它从每个调用中的工作方式;向后打印列表。

答案 1 :(得分:0)

您可以读取类似“打印下一个节点(如果有的话,然后打印此节点”)的代码。打印下一个节点的操作在第一个节点之后打印,直到列表的末尾。