slow = head
fast = head
for i in range(n):
fast = fast.next
print(fast.val)
while fast:
fast = fast.next
slow = slow.next
# print(fast.val)
print(slow.val)
slow.next = slow.next.next
print(slow.next.val)
return slow
这个为什么是错误的原因就是,slow是链表的头结点,链表转成列表数组从何开始,是从头结点开始的,所以如果直接返回的slow的时候,链表的头结点就从倒数第n个开始了 ,返回的列表也就不是后面的几个值了,你可以确定你的头结点是从哪里开始的
正确的代码
# class Solution:
# def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
# dummy = ListNode(0, head)
# first = head
# second = dummy
# for i in range(n):
# first = first.next
# while first:
# first = first.next
# second = second.next
# second.next = second.next.next
# return dummy.next