力扣-19. 删除链表的倒数第N个节点
题目链接
19. 删除链表的倒数第N个节点
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {int len = 0;ListNode p0 = new ListNode(0);p0.next = head;ListNode p = p0;while (n > 0) {p = p.next;n--;}ListNode pre = p0;while (p.next != null) {p = p.next;pre = pre.next;}pre.next = pre.next.next;return p0.next;}
}
小结:两种思路,一种是遍历两遍用链表长度减n
,题目中说最好遍历一遍,这里就使用双指针先让一个指针走n
步。使用技巧给链表添加头结点,保证边界情况的操作一致性。