19. 删除链表的倒数第 N 个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
示例 1:
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
示例 2:
输入:head = [1], n = 1
输出:[]
示例 3:
输入:head = [1,2], n = 1
输出:[1]
解题思路
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def removeNthFromEnd(head, n):
values = []
while head:
values.append(head.val)
head = head.next
index = len(values)-n
new_head = None
for val in values:
node = ListNode(val)
if new_head is None:
new_head = node
else:
current = new_head
while current.next:
current = current.next
current.next = node
return new_head