You must be able to produce simple clean linked list implementations quickly.
Implement Insert and Delete for
singly-linked linked list
sorted linked list
circular linked list
int Insert(node** head, int data)
int Delete(node** head, int deleteMe)
Split a linked list given a pivot value
void Split(node* head, int pivot, node** lt, node** gt)
Find if a linked list has a cycle in it. Now do it without marking nodes.
Find the middle of a linked list. Now do it while only going through the list once. (same solution as finding cycles)