2017-06-20 275 views
-6

這裏是我的末尾插入節點的鏈表列表。我得到傾倒的錯誤代碼。所以請幫我看看代碼有什麼問題。在末尾插入鏈表

如果我保持返回;在* headRef = newnode之後的末尾;它的工作。所以爲什麼要返回一個無效函數。

struct node 
{ 
    int data; // node format 
    struct node* next; 
}; 

void insertAtEnd(struct node** headRef, int newData) 
{ 
    struct node* ptr; 
    struct node* newnode; 
    ptr = (*headRef); 
    newnode = (struct node*)malloc(sizeof(struct node)); 
    newnode->data = newData; 
    newnode->next = NULL; 
    if (*headRef == NULL) 
    { 
     *headRef = newnode; 
    } 
    while (ptr->next != NULL) 
    { 
     ptr = ptr->next; 
    } 
    ptr->next = newnode; 
} 
+2

如何巨蟒與該添加額外的節點? –

+2

選擇一種語言 – kuro

+0

要診斷核心轉儲,我們需要查看完整的程序。 – zwol

回答

0

你應該有內返回,如果因爲經過if語句再次進入while循環,並在年底

struct node 
{ 
    int data; // node format 
    struct node* next; 
}; 

void insertAtEnd(struct node** headRef, int newData) 
{ 
    struct node* ptr; 
    struct node* newnode; 
    ptr = (*headRef); 
    newnode = (struct node*)malloc(sizeof(struct node)); 
    newnode->data = newData; 
    newnode->next = NULL; 
    if (*headRef == NULL) 
    { 
     *headRef = newnode; 
     return; 

    } 
    while (ptr->next != NULL) 
    { 
     ptr = ptr->next; 
    } 
    ptr->next = newnode; 
    return; 
}