Given A linked list, remove the nth node from the end of the list and return its head.
For example,
Given linked list:1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5.
Problem analysis, the value of n may be 1 (delete the last one), 5 (delete the first), 0 (not deleted), 6 (invalid deletion), so we add a head nhead, and use a sliding window of size n, while scanning the data, delete the point of the end of the chain is n
public class Solution {
Public ListNode Removenthfromend (listnode head, int n) {
ListNode nhead=new listnode (0);
Nhead.next=head;
ListNode First=nhead;
ListNode End=head;
int i=1;
while (I<n&&end.next!=null)
{
End=end.next;
i++;
}
if (i==n)
{
while (End.next!=null)
{
End=end.next;
First=first.next;
}
First.next=first.next.next;
}
return nhead.next;
}
}
Leetcode#19remove Nth Node from End of List