使用循环在链接列表的前面插入节点

时间:2016-05-26 15:20:14

标签: c++ list hyperlink insert

我尝试了这段代码。此代码的输出结果为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;
    }

1 个答案:

答案 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处查看它。