Skip to content

Instantly share code, notes, and snippets.

@Ray1988
Created April 5, 2014 16:48
Remove Nth Node From End of List
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
if (head==null){
return head;
}
ListNode remove=head;
ListNode last=head;
ListNode preHead=new ListNode (-1);
preHead.next=head;
ListNode pre=preHead;
while (n>1){
if (last.next==null){
return head;
}
last=last.next;
n--;
}
while (last.next!=null){
last=last.next;
pre=pre.next;
remove=remove.next;
}
pre.next=remove.next;
return preHead.next;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment