Remove Nth Node From End of List (LC-0019)

class Solution:
    def removeNthFromEnd(self, head, n):

        N = 0
        temp = head
        while temp:
            temp, N = temp.next, N + 1
        if n == N: return head.next

        fwd = head
        for ix in range(1 + n):
            fwd = None if not fwd else fwd.next
        
        temp = head
        while fwd:
            fwd = fwd.next
            temp = temp.next
        
        if temp and temp.next:
            temp.next = temp.next.next
        
        return head