给定一个链表,删除链表的倒数第n个节点并返回链表的头指针
时间: 2024-06-17 19:00:47 浏览: 182
python 实现删除链表的倒数第N个节点
可以通过快慢指针来解决此问题。首先,将快指针向前移动n步,然后同时移动快指针和慢指针,直到快指针到达链表的末尾。此时,慢指针指向的节点就是需要删除的节点的前一个节点。将其指向下下个节点即可删除倒数第n个节点。
下面是实现代码:
```
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* fast = head;
ListNode* slow = head;
for (int i = 0; i < n; i++) {
fast = fast->next;
}
if (!fast) {
return head->next;
}
while (fast->next) {
fast = fast->next;
slow = slow->next;
}
slow->next = slow->next->next;
return head;
}
```
阅读全文