#include #include typedef struct ll_node { int data; struct ll_node* next; } ll_node; /* Or in Python... typedef struct ll_node { void* data; type_id type; struct ll_node* next; } ll_node; */ void add_to_beginning(ll_node **beginning, int item){ ll_node *new_node = (ll_node*)malloc(sizeof(ll_node)); // (*new_node).data = item; // What we need new_node->data = item; // Shorthand way with less ( and ) new_node->next = *beginning; *beginning = new_node; } void print_list(ll_node* beginning){ ll_node* spot = beginning; while(spot){ printf("%d ", spot->data); spot = spot->next; } printf("\n"); } int main(){ ll_node* our_list = 0; add_to_beginning(&our_list, 5); add_to_beginning(&our_list, 6); add_to_beginning(&our_list, 7); add_to_beginning(&our_list, 8); add_to_beginning(&our_list, 9); print_list(our_list); return 0; }