19. 删除链表的倒数第 N 个结点
时间: 2023-11-22 12:05:20 浏览: 87
python-leetcode面试题解之第19题删除链表的倒数第N个结点.zip
好的,我的回答如下:
可以使用双指针来解决这个问题。首先让一个指针先走 n 步,然后让另一个指针从头开始和第一个指针一起走,直到第一个指针到达链表末尾。此时第二个指针所指向的结点就是要删除的结点的前一个结点,可以通过修改指针的方式来删除该结点。
具体实现可以参考以下代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def removeNthFromEnd(head: ListNode, n: int) -> ListNode:
dummy = ListNode(0)
dummy.next = head
first = dummy
second = dummy
for i in range(n):
first = first.next
while first.next is not None:
first = first.next
second = second.next
second.next = second.next.next
return dummy.next
```
阅读全文