Причина, по которой вы возвращаете head
, заключается в том, что вы не теряете заголовок списка.
Подумайте о том, как структурирован связанный список.Когда у вас есть четыре элемента в списке, это выглядит так:
A -> B -> C -> D
'head' - это первый элемент, A
.
Теперь вы собираетесь нажатьновый предмет, назовите его X
, в стек.Вы добавляете его в начало списка:
X -> A -> B -> C -> D
Теперь head
- это новый первый элемент, X
.
Теперь давайте посмотрим, как вы это используете.У вас есть связанный указатель списка, назовите его listHead
, который вы инициализируете как NULL
.Вы хотите добавить в него элементы:
struct node* listHead = NULL;
...
listHead = push(listHead, 22);
Если вы не вернули head
из функции push
, то вы никогда не назначите новое значение для listHead
.Это всегда будет NULL
;