Skip to content

Commit ece041d

Browse files
committed
Leetcode 19
Python solution
1 parent 4006565 commit ece041d

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Personal Practice Set - Doing One a Day (sometimes) in a Variety of Languages!!
2020
| 14 | Easy | [Longest Common Prefix](leetcode/14-Easy-Longest-Common-Prefix/problem.md) | [Python](leetcode/14-Easy-Longest-Common-Prefix/answer.py) |
2121
| 15 | Medium | [3Sum](leetcode/15-Medium-3Sum/problem.md) | [Python](leetcode/15-Medium-3Sum/answer.py) |
2222
| 16 | Medium | [3Sum Closest](leetcode/16-Medium-3Sum-Closest/problem.md) | [Python](leetcode/16-Medium-3Sum-Closest/answer.py) |
23+
| 19 | Medium | [Remove Nth Node From End of List](leetcode/19-Medium-Remove-Nth-Node-From-End-Of-List/problem.md) | [Python](leetcode/19-Medium-Remove-Nth-Node-From-End-Of-List/answer.py) |
2324
| 20 | Easy | [Valid Parentheses](leetcode/20-Easy-Valid-Parentheses/problem.md) | [Java](leetcode/20-Easy-Valid-Parentheses/answer.java) |
2425
| 21 | Easy | [Merge Two Sorted Lists](leetcode/21-Easy-Merge-Two-Sorted-Lists/problem.md) | [Java](leetcode/21-Easy-Merge-Two-Sorted-Lists/answer.java) |
2526
| 22 | Medium | [Generate Parentheses](leetcode/22-Medium-Generate-Parentheses/problem.md) | [Python](leetcode/22-Medium-Generate-Parentheses/answer.py) |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/python
2+
3+
#------------------------------------------------------------------------------
4+
5+
# Definition for singly-linked list.
6+
# class ListNode:
7+
# def __init__(self, x):
8+
# self.val = x
9+
# self.next = None
10+
11+
class Solution:
12+
def removeNthFromEnd(self, head, n):
13+
"""
14+
:type head: ListNode
15+
:type n: int
16+
:rtype: ListNode
17+
"""
18+
if head:
19+
fast = head
20+
slow = head
21+
22+
for _ in range(n):
23+
if fast:
24+
fast = fast.next
25+
else:
26+
return None
27+
28+
# head case
29+
if not fast:
30+
head = head.next
31+
return head
32+
33+
# This will bring slow up to the correct node
34+
while fast.next:
35+
fast = fast.next
36+
slow = slow.next
37+
38+
# Remove the node after slow
39+
slow.next = slow.next.next
40+
return head
41+
42+
#------------------------------------------------------------------------------
43+
#Testing
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Problem 19: Remove Nth Node From End of List
2+
3+
4+
#### Difficulty: Medium
5+
6+
#### Problem
7+
8+
Given a linked list, remove the nth node from the end of list and return its head.
9+
10+
**Note:**
11+
12+
Given n will always be valid.
13+
Try to do this in one pass.
14+
15+
16+
#### Example
17+
18+
<pre>
19+
20+
Given linked list: 1->2->3->4->5, and n = 2.
21+
22+
After removing the second node from the end, the linked list becomes 1->2->3->5.
23+
24+
</pre>

0 commit comments

Comments
 (0)