Skip to content
Closed
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions DIRECTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@
* [Merge Two Lists](data_structures/linked_list/merge_two_lists.py)
* [Middle Element Of Linked List](data_structures/linked_list/middle_element_of_linked_list.py)
* [Print Reverse](data_structures/linked_list/print_reverse.py)
* [Remove nth Node from the End](data_structures/linked_list/remove_nth_node_from_end.py)
* [Reverse K Group](data_structures/linked_list/reverse_k_group.py)
* [Rotate To The Right](data_structures/linked_list/rotate_to_the_right.py)
* [Singly Linked List](data_structures/linked_list/singly_linked_list.py)
Expand Down
38 changes: 38 additions & 0 deletions data_structures/linked_list/remove_nth_node_from_end.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
class Node:
def __init__(self, val):
self.val = val
self.next = None


def remove(head, n):
extra = Node(0)
extra.next = head
fast = extra
slow = extra
for _ in range(n):
fast = fast.next

while fast.next:
fast = fast.next
slow = slow.next

slow.next = slow.next.next

return extra.next


def print_list(head):
curr = head
while curr:
print(curr.val, end=" ")
curr = curr.next


head = Node(1)
head.next = Node(2)
head.next.next = Node(3)
head.next.next.next = Node(4)
head.next.next.next.next = Node(5)
print_list(head)
head = remove(head, 5)
print_list(head)