初学者求指教,一个有关链表的有关问题

菜鸟求指教,一个有关链表的问题
    int d;
    cin>>d;
    struct Node *temp = head;
    while(d != -1)
    {
        struct Node *node = (struct Node *)malloc(sizeof(struct Node));
        node->data = d;
        temp->next = node;
        temp = node;
        cin>>d;
    }
其中, temp->next = node;  temp = node;这两句是什么意思,没有temp = node行不行?自学数据结构,不太懂……
------解决思路----------------------
temp = node;
可以让下一次循环来的时候从上次插入的位置继续往后插入,否则的话 temp 一直指向 head, 每次都是从头插入的。
------解决思路----------------------
把temp名字改成tail, 你就明白了