怎么做到输入多少个数即创建多长的链表

刚学数据结构,求助

怎么做到输入多少个数即创建多长的链表

按书上的代码,是要输入一个n值来确定链表的长度的

但是这样就做不到动态分配内存了


int CreateList(LinkList& L, int n)
{
    int t;
    L = new LNode;
    L->next = NULL;                    //建立一个带头的空链表
    for (int i = 0; i < n; ++i)        //这里的循环以n为条件
    {
        p = new LNode;                 //这里是生成新的节点
        cin>>p->date;                  //赋值
        p->next = L->next;
        L->next = p;
    }
    return OK;
}

你可以输入任意个数,输入0结束:

int CreateList(LinkList& L)
{
    int t;
    L = new LNode;
    L->next = NULL;                    //建立一个带头的空链表
    for (int i = 0; 1; ++i)        //这里的循环以n为条件
    {
            int a;
                cin >> a;
                if (a == 0) break;
        p = new LNode;                 //这里是生成新的节点
        p->date=a;                  //赋值
        p->next = L->next;
        L->next = p;
    }
    return OK;
}