Given a linked list, remove the nth node from the end of 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.
public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if(head == null) return head; int sum = 0; ListNode run = head; while(run!=null){ sum++; run = run.next; } n = sum- n; if(n < 0 ) return head; else if ( n == 0) head = head.next; else{ run = head; while(n > 1){ n--; run = run.next; } run.next = run.next.next; } return head; } }