Python Solution using Two Pointers
\nclass Solution(object):\n    def removeNthFromEnd(self, head, n):\n\t\n        slow = head # finally point to the previous node of the target node\n        fa
```\nclass Solution(object):\n    def removeNthFromEnd(self, head, n):\n\t\n        slow = head # finally point to the previous node of the target node\n        fast = head # finally point to the last node\n        for i in range(n): # let the fast pointer move n steps ahead of the slow pointer\n            fast = fast.next\n        \n        # This situation would happen when we are required to del the first node (n = len(List))\n        # Also, it can handle the [] case\n        if not fast:\n            return slow.next\n        \n        while fast.next:\n            fast = fast.next\n            slow = slow.next\n            \n        slow.next = slow.next.next\n        return head\n```
['Python']