def remove_nth_from_end(head, n)
if not head or not head.next then
return nil
end
len = 0
th = head
while th do
th = th.next
len+=1
end
target = len - n
if target == 0 then
return head.next
end
th = head
prev = th
while target > 0 and th do
prev = th
th = th.next
target -= 1
end
prev.next = th.next
return head
end