import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @param n int整型
* @return ListNode类
*/
public ListNode removeNthFromEnd (ListNode head, int n) {
// write code here
// 找到倒数第n + 1个节点
if (head == null) {
return null;
}
ListNode hair = new ListNode(0);
hair.next = head;
ListNode begin = hair;
ListNode end = hair;
int k = 1;
while (end.next != null) {
if (k < n + 1) {
end = end.next;
k++;
continue;
}
begin = begin.next;
end = end.next;
}
if (k < n + 1) {
return head;
}
// 删除节点begin.next
begin.next = begin.next.next;
return hair.next;
}
}