我試圖遞歸地打印我的列表,但我遇到了麻煩。輸出是無限2 ....... 2 .....直到我的電腦崩潰。打印LinkedList遞歸地使用C++第2部分
我的遞歸函數如下:
//void List::PrintListRecursively()
void List::PrintListRecursively(){
if (curr==NULL)
{
cout << "\n";
return;
}
cout << curr->data <<endl;
PrintListRecursively();
}
我的主要功能如下:
int main()
{
List myList;
myList.insertAtTail(2);
myList.insertAtTail(3);
myList.insertAtHead(0);
myList.insertAtHead(-1);
myList.insertAtHead(-2);
myList.PrintListRecursively();
}
我原來的遞歸函數是下面的代碼,但我不知道怎麼傳因爲它是一個void函數,所以它是原始函數的參數。該函數不一定是無效的,我只是不知道如何將指針傳遞給函數,特別是遞歸。遞歸總是讓我失望。
void List::PrintListRecursively(){
if (curr==NULL)
{
cout << "\n";
return;
}
cout << curr->data <<endl;
PrintListRecursively(curr->next);
}
有人建議:
void List::PrintListRecursively(Node* curr)
,因爲我使用的typedef:typedef結構節點* NODEPTR; 我嘗試這樣做:
void List::PrintListRecursively(nodePtr curr)
但我得到這個錯誤:聲明是無效列表:: PrintListRecursively不相容
請幫助
做你的聲明和定義匹配'PrintListRecursively'? –
這個問題與你的[其他問題]幾乎相同(http://stackoverflow.com/questions/20226797/print-linkedlist-recursively-using-c) - 請堅持現有的問題。 – user4815162342