这道题可以定义两个指针,一个指针,一个指针从开头出发移动N+1个节点 ,第二个质争从头开始,与第二个指针保持N的距离,当第一个指针到达最后一个节点的时候,第二个指针正好到达倒数第N个节点,删除该节点的数,再将第二个指针重新连接到下下个节点,完成题目要求
JAVA实现
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode A = new ListNode(0);
A.next = head;
ListNode first = A;
ListNode second = A;
int i;
for (i = 1; i <= n + 1; i++)
{
first = first.next;
}
while (first != null)
{
first = first.next;
second = second.next;
}
second.next = second.next.next;
return A.next;
}