1. Maintain two pointers – reference pointer and main pointer.
2. Initialize both reference and main pointers to head. First move reference pointer to n nodes from head.
3. Now move both pointers one by one until reference pointer reaches end.
4. Now main pointer will point to nth node from the end.
Return main pointer.
Implementation according to list in C
Implementation according predefined Java collection