我有这段代码,我从一开始就输入了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