题目
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
题解
使用双指针进行标记,指针间拉开间隔n,待后指针到达末尾,删除前指针所在的位置即可。
注意边界条件判断的添加即可。
public ListNode removeNthFromEnd(ListNode head, int n) {
if(head.next == null) {
return null;
}
ListNode preA = head;
ListNode A = head;
ListNode B = head;
for(int i = 0; i < n-2; i++) {
B = B.next;
}
while(B.next != null) {
preA = A;
A = A.next;
B = B.next;
}
preA.next = A.next;
return head;
}