19. 删除链表的倒数第 N 个结点
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
使用哑结点可以避免许多特殊情况
这道倒数链表是要删除,如果是平时使用正常的快慢指针的话,需要注意快慢指针应该比平时使用差一步,因为要删除慢指针所在的地方,可以让快指针多走一步,也可以使用哑结点,就是比平时慢了一步
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
初始化一个空节点,初始赋值为0,并且dummy的下一个next指针指向head,指针指向为dummy
ListNode dummy = new ListNode(0,head);
ListNode first = head;
ListNode slow = dummy;
for(int i = 0; i < n; i++)
first = first.next;
while(first != null){
first = first.next;
slow = slow.next;
}
slow.next = slow.next.next;
ListNode ans = dummy.next;
return ans;
}
}