Leetcode 19

03 Mar 2024 Tech-Post Leetcode

Leetcode 19. Remove Nth Node From End of List

Problem statement :

Given the head of a linked list, remove the nth node from the end of the list and return its head.

Examples :

Example 1:

Input: head = [1,2,3,4,5], n = 2
Output: [1,2,3,5]

Example 2:

Input: head = [1], n = 1
Output: []

Constraints:

The number of nodes in the list is sz. 1 <= sz <= 30 0 <= Node.val <= 100 1 <= n <= sz

Solution :

# using recursion
class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        def removeNode(node, n):
            if not node:
                return 0
            cnt = removeNode(node.next, n)
            if cnt == n:
                node.next = node.next.next
            return cnt + 1
    
        return head.next if removeNode(head, n) == n else head
        
        

Search

    Table of Contents