Remove Nth Node From End of List
Description:
Given a linked list, remove the nth node from the end of list and return its head.
Example
Given linked list: 1->2->3->4->5->null, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5->null.
Challenge
Can you do it without getting the length of the linked list?
Code:
"""
Definition of ListNode
class ListNode(object):
def __init__(self, val, next=None):
self.val = val
self.next = next
"""
class Solution:
"""
@param head: The first node of linked list.
@param n: An integer
@return: The head of linked list.
"""
def removeNthFromEnd(self, head, n):
# write your code here
if head.next == None and n == 1:
return None
ad = ListNode(0)
ad.next = head
ind0 = ad
ind1 = ad
for i in range(n):
ind1 = ind1.next
while ind1.next != None:
ind1 = ind1.next
ind0 = ind0.next
tmp = ind0.next
ind0.next = tmp.next
tmp.next = None
return ad.next