A singly linked list is just nodes pointing forward. Reversing it means making every arrow point backward, and the trick is doing it in one walk, with no extra memory.
Two pointers do the work: curr walks the list, prev trails one node behind, and at each step you flip curr's arrow to point at prev before advancing both. When curr walks off the end, the old tail is the new head. One pass, O(n) time, O(1) space, which is exactly why interviewers love it.