Write a C program to reverse a singly linked list in-place, and explain how you would optimize it to minimize cache misses.