Возвращается ли; сделать что-нибудь в этой функции?

yunkim спросил: 07 октября 2018 в 10:33 в: c

Я пытаюсь изучить связанный список, следуя инструкциям, приведенным в этом руководстве, и я не могу понять, является ли return; в выражении if на шаге 4 следующий код делает что-нибудь ...

/* Given a reference (pointer to pointer) to the head 
   of a list and an int, appends a new node at the end */void append(struct Node** head_ref, int new_data) 
{ 
    /* 1. allocate node */
    struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); 
    struct Node *last = *head_ref; /* used in step 5*/    /* 2. put in the data */
    new_node->data = new_data;     /* 3. This new node is going to be the last node, so make next of it as NULL*/
    new_node->next = NULL;     /* 4. If the Linked List is empty, then make the new node as head */
    if (*head_ref == NULL) 
    { 
        *head_ref = new_node; 
        return; //<<<this return here
    }     /* 5. Else traverse till the last node */
    while (last->next != NULL) 
        last = last->next;     /* 6. Change the next of last node */
    last->next = new_node; 
    return;  
}

было бы следующее функционально так же, как и выше, если бы не было return;, подобного этому?

/*4. If the Linked List is empty, then make the new node as head */
if(*head_ref == NULL)
{
    *head_ref = new_node;
}
/*step 5*/
/*step 6*/

0 ответов