Python | One-pass | O(n) | Faster than 93.19%
```class Solution:\n    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:\n        slow, fast = head, head\n        \n        
```class Solution:\n    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:\n        slow, fast = head, head\n        \n        while n > 0:\n            fast = fast.next\n            n -= 1\n        \n        while fast is not None and fast.next is not None:\n            slow = slow.next\n            fast = fast.next\n\n        if fast is not None:\n            slow.next = slow.next.next\n        else:\n            head = head.next\n        \n        return head
['Linked List', 'Python', 'Python3']