From 1b5898f9d0c07446fd8b9cbe99377ab5d669e9af Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Sun, 8 Jan 2023 09:26:56 -0500 Subject: [PATCH] Time: 29 ms (53.66%), Space: 13.4 MB (46.16%) - LeetHub --- .../19-remove-nth-node-from-end-of-list.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 19-remove-nth-node-from-end-of-list/19-remove-nth-node-from-end-of-list.py diff --git a/19-remove-nth-node-from-end-of-list/19-remove-nth-node-from-end-of-list.py b/19-remove-nth-node-from-end-of-list/19-remove-nth-node-from-end-of-list.py new file mode 100644 index 0000000..de6a95c --- /dev/null +++ b/19-remove-nth-node-from-end-of-list/19-remove-nth-node-from-end-of-list.py @@ -0,0 +1,36 @@ +# 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 removeNthFromEnd(self, head, n): + """ + :type head: ListNode + :type n: int + :rtype: ListNode + """ + + # Get length + counterNode = head + length = 0 + while counterNode != None: + counterNode = counterNode.next + length = length + 1 + + # Readjust + if length == 1: + return None + + if length == n: + return head.next + + nodeBefore = head + for i in range(length - n - 1): + nodeBefore = nodeBefore.next + if n == 1: + nodeBefore.next = None + else: + nodeBefore.next = nodeBefore.next.next + + return head \ No newline at end of file