Skip to content

Commit ddfd2ac

Browse files
committed
Time: 36 ms (62.73%), Space: 16.5 MB (61.49%) - LeetHub
1 parent e94ffdb commit ddfd2ac

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from typing import Optional
2+
3+
4+
class ListNode:
5+
def __init__(self, val=0, next=None):
6+
self.val = val
7+
self.next = next
8+
9+
10+
class Solution:
11+
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
12+
total = 0
13+
countNode = resNode = head
14+
while countNode:
15+
total += 1
16+
countNode = countNode.next
17+
delIdx = total - n - 1
18+
if delIdx < 0:
19+
head = head.next
20+
return head
21+
currentIdx = 0
22+
while resNode:
23+
if currentIdx == delIdx:
24+
if resNode.next.next:
25+
resNode.next = resNode.next.next
26+
else:
27+
resNode.next = None
28+
return head
29+
else:
30+
resNode = resNode.next
31+
currentIdx += 1
32+
return head
33+
34+
35+
root = ListNode(1)
36+
root.next = ListNode(2)
37+
root.next.next = ListNode(3)
38+
root.next.next.next = ListNode(4)
39+
root.next.next.next.next = ListNode(5)
40+
print(Solution().removeNthFromEnd(root, 2))

0 commit comments

Comments
 (0)