【发布时间】:2023-03-30 23:20:01
【问题描述】:
我正在尝试解决 LeetCode 挑战 19. Remove Nth Node From End of List:
给定链表的
head,从链表的末尾删除nth节点并返回它的头。约束
- 列表中的节点数为
sz。1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz
下面是我的功能。它使用 2 指针方法。它适用于许多测试用例,除了这个:
- 链表 =
[1,2,3] n = 3
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
if head is None or head.next is None:
return None
if head.next.next is None :
if(n ==1):
head.next = None
return head
if(n == 2):
head = head.next
return head
slow_pointer = head
fast_pointer = head
for i in range(n+1):
fast_pointer = fast_pointer.next
while(fast_pointer is not None):
fast_pointer = fast_pointer.next
slow_pointer = slow_pointer.next
slow_pointer.next = slow_pointer.next.next
return head
我哪里做错了?
【问题讨论】:
-
我相信应该是
for i in range(n)。您收到的是异常,还是只是磨损的结果?
标签: python linked-list recursive-datastructures