import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类
* @param n int整型
* @return ListNode类
*/
public ListNode removeNthFromEnd (ListNode head, int n) {
// 先找到倒数第n个节点
ListNode fast = head;
for (int i = 0; i < n && fast != null; i++) {
fast = fast.next;
if (fast == null && i < n - 1) {
return head;
}
}
// 哑结点
ListNode dummy = new ListNode(-1);
dummy.next = head;
// 前序节点
ListNode pre = dummy;
// 当前节点
ListNode cur = head;
while (fast != null) {
fast = fast.next;
pre = cur;
cur = cur.next;
}
pre.next = cur.next;
return dummy.next;
}
}