void reverse(LIST **head)
{
if(!*head)
return ;
LIST *first=*head,*rest=(*head)->next;
if(!rest)
return;
reverse(&rest);
first->next->next = first;
first->next= NULL;
*head = rest;
// printf(" :%d",rest->data);
}
此程序正在工作。所提到的遞歸代碼是用於反轉單鏈表的。考慮列表L = {1,2,3,4,5}作爲輸入。考慮兩種情況,情況1,如果我們取消註釋語句10,輸出將是最後一個節點的數據即5次四次,案例2如果我們評論陳述號。 09然後printf將打印5,4,3,2。我的問題是,在這種情況下1由於這種說法*頭=休息;爲什麼我們爲每個函數調用獲得不變的值 - >數據?如果我們刪除了聲明號。 09然後printf將打印rest-> data的不同值。
非常感謝你提前。不理解代碼片斷,使用C中的遞歸反轉鏈接列表
請修復您的格式 – abasterfield