Почему нам даже нужно пройти через список, хотя я получаю значение последнего элемента, если я делаю printf("%d", end->value)
, как в строке 40, вместо того, чтобы проходить через каждый элемент?
#include <stdio.h>
#include <stdlib.h>
struct node {
int value;
struct node *next;
};
void print(struct node *top) {
while (top != NULL) {
printf("%d\n", top->value);
top = top->next;
}
}
int main(void) {
struct node *head;
struct node *second;
struct node *end;
head = NULL;
second = NULL;
end = NULL;
head = (struct node*)malloc(sizeof(struct node));
second = (struct node*)malloc(sizeof(struct node));
end = (struct node*)malloc(sizeof(struct node));
head->value = 5;
head->next = second;
second->value = 9;
second->next = end;
end->value = 10;
end->next = NULL;
printf("%d\n", end->value ); /*I m directly getting the output as 10,
whats the use of traversing through the list to get the same value? */
print(head); /*this is the use of the function to traverse through the
list*/
}