19. Remove Nth Node From End of List
Given the
headof a linked list, remove thenthnode from the end of the list and return its head.Example 1:
Input: head = [1,2,3,4,5], n = 2
Output: [1,2,3,5]Example 2:
Input: head = [1], n = 1
Output: []Example 3:
Input: head = [1,2], n = 1
Output: [1]
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
fast, slow = head, head
for _ in range(n):
fast = fast.next
if not fast:
return head.next
while fast.next:
fast, slow = fast.next, slow.next
slow.next = slow.next.next
return head
