Вы должны объявить список как двойной указатель на узел.
struct node** list;
Затем вы можете получить доступ к значению первого узла с помощью
(*list)->val
Дополнительная информация:
В реализации в типах данных, таких как списки в C, мы часто используем 2 определения типа, чтобы помочь с удобочитаемостью кода и устранить множество звездочек и амперсандов. Это:
typedef struct node* ListNode;
typedef ListNode* List;
Таким образом, вы можете объявить список просто:
List list;
Обратите внимание, что реализация функций списка также становится более читабельной, заменяя struct node*
и struct node**
соответственно.