leetcode19. 删除链表的倒数第 N 个结点
leetcode19. 删除链表的倒数第 N 个结点
题目

思路
- 建立虚头节点
- fast首先走n + 1步 ,因为只有这样同时移动的时候slow才能指向删除节点的上一个节点(方便做删除操作)
代码
class Solution:def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:pre_head = ListNode(val=0, next=head)node_right = pre_headnode_left = pre_headfor i in range(n+1): # 快指针比慢指针快 n+1 步,方便删除node_right = node_right.nextwhile node_right:node_right = node_right.nextnode_left = node_left.nextnode_left.next = node_left.next.nextreturn pre_head.next