我想使用遞歸來反轉鏈接列表。我寫了一個函數「逆(節點* PTR)對這個 我正在爲40 40 20的輸出,同時我期望輸出爲40,20,10,低於 是發佈的代碼。使用遞歸的反向鏈接列表
class list {
//some code;
void reverse()
{
node* temp = new node;
temp =first;
reverse(temp);
temp =NULL;
delete temp;
}
void reverse(node* ptr) {
if(ptr->next != NULL)
{
ptr =ptr->next;
reverse(ptr);
}
cout << ptr->data << endl;
}
// some code;
};
int main()
{
list ll;
ll.insert(18);
ll.insert(20);
ll.insert(40);
ll.display();
ll.reverse();
return 0;
}
請建議我在做什麼錯在這裏。
感謝
'node * temp = new node; temp = first;'導致內存泄漏,你分配一個新的節點,然後你「忘記」它失去了它的地址[注意不解決你的問題,這是一個不同的問題] – amit
你試過*調試*? – n0rd