题目描述请点击查看LeetCode 题目描述
Python3 代码解答如下:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def removeNthFromEnd(self, head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
#将链表抽成列表
li = []
a = head
while a is not None:
li.append(a)
a=a.next
#删除倒数第 n 个节点
li.pop(-n)
print(len(li))
b = ListNode(0) #新链表,头结点为0
c = b #当前节点/指针
li.insert(0, b) #当数组只有一个元素时,删除了返回空链表
#循环节点列表,将其拼成链表
for j in range(0,len(li)):
c.val = li[j].val
if j == len(li)-1:
c.next = None
else:
c.next = li[j+1]
c = c.next
return b.next