任何人都可以解釋這是如何實際工作的。我無法理解遞歸,遞歸到達鏈表末尾後會發生什麼,以及隨着操作(增量和條件檢查)如何展開?使用遞歸結束(鏈接列表)的第n個節點
void printNthFromLast(struct node* head, int n)
{
static int i = 0;
if(head == NULL)
return;
printNthFromLast(head->next, n);
if(++i == n)
printf("%d", head->data);
}
請注意,該功能只能被稱爲*一次*。變量「i」的初始化僅在第一次調用該函數時發生。 –
如果你能夠理解任何簡單的遞歸,那麼它的簡單... – Ankur