struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode *removeNthFromEnd(ListNode *head, int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(head == NULL) return NULL;
ListNode dummy(-1);
dummy.next = head;
ListNode* p = dummy.next;
ListNode* prevP = &dummy;
ListNode* q = dummy.next;
for(int i = 0; i < n; ++i)
q = q->next;
while(q != NULL)
{
q = q->next;
prevP = p;
p = p->next;
}
prevP->next = p->next;
return dummy.next;
}
};[LeetCode]Remove Nth Node From End of List
最新推荐文章于 2024-01-12 15:01:11 发布
本文介绍了一种有效的算法,用于删除单链表中倒数第N个节点。通过使用双指针技巧,文章详细解释了如何在一次遍历中找到目标节点并进行删除操作。
652

被折叠的 条评论
为什么被折叠?



