我尝试了这段代码。此代码的输出结果为1 10 9 8 7 6 5 4 3 2。 但我想要输出10 9 8 7 6 5 4 3 2 1。 什么是我的错,我无法理解。我看到这个问题之前已经问过,但是我的概念澄清了我再次问过这个问题。有更好的解决方案。
#include <iostream>
using namespace std;
struct NODE
{
int data;
NODE *next;
};
int main()
{
int i,j=0;
NODE *start=NULL,*ptr,*temp;
for (i=1; i<=10; i++)
{
ptr = new NODE;
ptr->data=i;
if(start==NULL)
{
ptr->next=NULL;
start=ptr;
}
else
{
ptr->next=start->next;
start->next=ptr;
}
}
temp=start;
for ( temp = start; temp; temp = temp->next )
cout << temp->data << ' ';
return 0;
}
答案 0 :(得分:3)
循环有不必要的逻辑。它可以简单地说是:
for (i=1; i<=10; i++)
{
ptr = new NODE;
ptr->data=i;
// It doesn't matter what start is.
// The new NODE is added to the front.
ptr->next=start;
// Make the new NODE the front(start).
start=ptr;
}
在http://ideone.com/y62FnG处查看它。