From c7ea3e27f2f621349a0f5884252e9d2c1376d91b Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Sat, 7 May 2022 15:32:49 -0400 Subject: [PATCH] Time: 18 ms (88.11%), Space: 13.4 MB (69.39%) - LeetHub --- .../19-remove-nth-node-from-end-of-list.py | 32 +++++++++++++++++++ 1 file changed, 32 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..35dffe5 --- /dev/null +++ b/19-remove-nth-node-from-end-of-list/19-remove-nth-node-from-end-of-list.py @@ -0,0 +1,32 @@ +# 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