Concept Flow - Remove Nth Node from End of List
Create dummy node pointing to head
Set two pointers: first and second at dummy
Move first pointer n+1 steps ahead
Move first and second pointers together until first reaches end
Second pointer now points to node before target
Remove target node by changing second->next
Return dummy.next as new head
We use two pointers spaced n+1 apart to find the node before the one to remove, then adjust pointers to remove it.
