No indexes here. Just nodes, links, and one pointer leading to the next.
int list_node_count(ListNode *head)
void list_apply(ListNode *list, void (*f)(void *))
void list_filter(ListNode **begin, void *ref, int (*cmp)(void *, void *))
int detect_cycle(ListNode *list)