Remove Nth Node From End of List

Given the head of a linked list, remove the nth node 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]

# Definition for singly-linked list.
class ListNode(object):
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next


class Solution(object):
    def findLengthList(self, head):
        count = 0
        node = head
        while node:
            count += 1
            node = node.next
        return count

    def removeNode(self, head, node_remove):
        count = 0
        node = head
        answer = []
        while node:
            if count != node_remove:
                answer.append(node.val)
            node = node.next
            count += 1

        return answer

    def makeNodeList(self, values):
        h = None
        for val in reversed(values):
            h = ListNode(val, h)
        return h

    def removeNthFromEnd(self, head, n):
        """
        :type head: ListNode
        :type n: int
        :rtype: ListNode
        """
        l = self.findLengthList(head)
        node_remove = l - n
        values = self.removeNode(head, node_remove)
        print(values)
        node_answer = self.makeNodeList(values)
        return node_answer


def createLinkedList(values):
    h = None
    for val in reversed(values):
        h = ListNode(val, h)
    return h


test_case = {
    "no": "one",
    "input": ([1, 2, 3, 4, 5], 2),
    "answer": [1, 2, 3, 5],
}

s = Solution()
c = [1, 2, 3, 4, 5]
node_list = createLinkedList(c)
s.removeNthFromEnd(node_list, 2)