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 at 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 links to remove it.
