我有這段代碼,我從一開始就輸入了5個隨機元素1,3,5,7,9,然後我想顯示我的鏈表(1,3,5,7,9 ),但由於某種奇怪的原因,它的順序相反(9,7,5,3,1)。你能指出這個問題嗎?顯示鏈表時的顛倒順序
#include <iostream> using namespace std;
struct node {
int data;
node * next; };
int n;
int main() {
// input.
cout << "please input 5 elements:\n";
node * head = NULL;
for (int i = 0; i < 5; i++) {
cin >> n;
node * curr = new node;
curr -> data = n;
curr -> next = head;
head = curr;
}
// display
while (head) {
cout << head -> data << "\n";
head = head -> next;
}
return 0;
}
你在哪裏試圖向後打印清單? – NathanOliver
剛剛完成添加元素後,進行驗證。 – user3212534
它正在做你編碼它做的事情。以'head = null'開頭。創建'1',指向'null'(當前頭),並更新'head = 1'。之後,添加'3',指向'1'(頭部)旁邊並更新'head = 3'。加'5',指向'3' ...旁邊(5-> 3-> 1-> null)。完成後,從頭開始(5)..打印並轉到下一個(3)。如果您使用一張紙並逐步說明即將發生的事情,它會有所幫助,它可以幫助您查看正在發生的事情。 – wendelbsilva