2017-06-20 121 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; 
}