2017-05-19 199 views
-2

爲什麼這部分代碼無法在鏈表的末尾添加元素?如何在鏈表的末尾插入一個元素?

void insert_last(node **test, node **head){ 
    *test = *head; 
    int value; 
    cout << "enter the value to be inserted:"; 
    cin >> value; 
    node *temp = new node; 
    temp->data = value; 
    temp->link = NULL; 
    while(*test != NULL){ 
     *test = (*test)->link; 
    } 
    *test = temp; 
} 
+2

'test-> link = temp;'而不是最後一行 – d9ngle

回答

3

您正移過列表的末尾。您要迭代,直到test->linkNULL,然後將test->link設置爲新元素。

您還應該嘗試一下調試器並學習如何使用它,這將節省未來的工作量。

+0

實際上,由於您正在比較''test'和'NULL',因此您可能只是砸碎了第一個元素。仍然。 – Donnie