text: """
  
  Given the head of a linked list, remove the nth node from the end of the list and return its head.
  
  Follow up: Could you do this in one pass?
  
  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]
  
  
  Constraints:
  
  The number of nodes in the list is sz.
  1 <= sz <= 30
  0 <= Node.val <= 100
  1 <= n <= sz
  
  """
  
  
  # Definition for singly-linked list.
  class ListNode:
      def __init__(self, val=0, next=None):
          self.val = val
          self.next = next
  
  
  class Solution:
      def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
          l = []
  
          while (head):
              l.append(head.val)
              head = head.next
  
          l.pop(len(l) - n)
          i = ListNode()
          temp = i
          for j in l:
              i.next = ListNode(j)
              i = i.next
          return temp.next
  