Optimal Algorithmic Approach
Two-pointer with N-step lead: one pass, O(n).
Core Invariants & Edge Cases
- Use two pointers: advance the first pointer N+1 steps ahead
- Then advance both until first reaches null
- Second pointer is now at the node before the target; update next pointer