class Solution:
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
pre_head = ListNode(val=0, next=head)
node_right = pre_head
node_left = pre_head
for i in range(n+1): # 快指针比慢指针快 n+1 步,方便删除
node_right = node_right.next
while node_right:
node_right = node_right.next
node_left = node_left.next
node_left.next = node_left.next.next
return pre_head.next
相关文章
- 数据结构作业——P53算法设计题(6):设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点
- 设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点。
- DAY4| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
- 不带头结点的单链表删除任意一个节点
- 力扣HOT100 - 19. 删除链表的倒数第N个节点
- (力扣)删除链表的倒数第N个节点 C++-三种方法
- leetcode19. 删除链表的倒数第 N 个结点-代码
- 寻找链表中倒数第K个结点的位置
- remove Nth Node from linked list从链表中删除倒数第n个元素
- 时间复杂度分别为 O(n)和 O(1)的删除单链表结点的方法