题目描述
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
出处
思路
两个指针间隔n,一趟遍历解决。
代码
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* p=head;ListNode* q=head;while(n>0){q=q->next;n--;}if(!q){q=p->next;delete(p);return q;}q=q->next;while(q){p=p->next;q=q->next;}q=p->next;p->next=q->next;delete(q);return head;}
};