/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* h=new ListNode(0);
h->next=head;
int size=0;
if(head==NULL)return head;
ListNode *p=head;
while(p){
size++;
p=p->next;
}
ListNode *q=h;
p=head;
int cnt=size-n+1;
while(--cnt){
q=p;
p=p->next;
}
q->next=p->next;
delete p;
return h->next;
}
};
19. 删除链表的倒数第 N 个结点
最新推荐文章于 2024-03-18 15:37:36 发布
本文介绍了一个C++解决方案,用于从单链表中删除倒数第n个节点。通过使用辅助节点h和两个指针p和q,算法实现了在不反转链表的情况下找到并移除目标节点的操作。
摘要由CSDN通过智能技术生成