删除链表的倒数第 N 个结点
https://leetcode.cn/problems/remove-nth-node-from-end-of-list/submissions/ (opens new window) 标签 需要注意的点
- 虚拟节点指向head
- 边界问题
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
dummyNode = ListNode(-1)
dummyNode.next = head
xNode = self.findNodeX(dummyNode, n+1)
xNode.next = xNode.next.next
return dummyNode.next
def findNodeX(self, node, k):
p1 = node
# p1 先走k
for i in range(k):
p1 = p1.next
p2 = node
# 同时走n-k
while p1:
p1 = p1.next
p2 = p2.next
return p2