/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */

/**
  * 
  * @param head ListNode类 
  * @param n int整型 
  * @return ListNode类
  */
function removeNthFromEnd( head ,  n ) {
    if (head === null) return head;
  
    let dummy = new ListNode(-1);
  
    dummy.next = head;
  
    let pre = dummy;
    let curr = head;
    
    while (curr && n > 0) {
        curr = curr.next;
        n = n -1;
    }
    
    if (n > 0) return null;
    
    while (curr) {
        curr = curr.next;
        pre = pre.next;
    }
    
    pre.next = pre.next.next;
    
    return dummy.next;
    
}
module.exports = {
    removeNthFromEnd : removeNthFromEnd
};